借版问一个 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 产品='可乐'的输出需要多次用到,该怎么处理?
1
DOMO 2023-06-05 16:50:34 +08:00
group by ?
|