借版问一个 oracle 的问题,表大概示例如下
产品 | 销售日期 | 价格 | |
---|---|---|---|
可乐 | 2023.6.5 | 2.5 | |
雪碧 | 2023.6.5 | 2.5 | |
牛奶 | 2023.6.6 | 10 | |
咖啡 | 2023.6.6 | 12 |
…… 程序要查询数据库生成可乐的销售记录 select * from table where 产品='可乐'
但是 1 月呢?可以加一个时间的限制
and SELLDATE>=to_date(1 月初) and SELLDATE<to_date(1 月末),变成
select * from table where 产品='可乐' and SELLDATE>=to_date(1 月初) and SELLDATE<to_date(1 月末) 以此类推,可以得到每个月份的数据。
但是,假设可乐(产品)没有索引,查询时间很长,那么每查一个月份都要来这么一次,实在太慢了。
目前有一个思路是临时表,还有别的路径吗。
搜索得知 oracle 有子查询,不过子查询只有一个输出结果吧,select * from table where 产品='可乐'的输出需要多次用到,该怎么处理?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.