sql - 过时数据计数
问题描述
所以我有一个表叫:EQ
我目前的数据如下。日期范围在 2018 年 11 月 1 日至 2018 年 11 月 30 日之间
我的最终结果是能够知道该期间每个项目的旧价格有多少天?如果可能的话,添加新价格的日期?否则前者就足够了。
Date Product Item Price
11/1/2018 Item A 101
Item B 101
11/2/2018 Item A 101
Item B 101
11/3/2018 Item A 101
Item B 101
11/4/2018 Item A 101
Item B 101
11/5/2018 Item A 101
Item B 101
11/6/2018 Item A 101
Item B 101
11/7/2018 Item A 101
Item B 101
11/8/2018 Item A 101
Item B 101
11/9/2018 Item A 101
Item B 101
11/10/2018 Item A 101
Item B 101
11/11/2018 Item A 101
Item B 101
11/12/2018 Item A 100
Item B 101
11/13/2018 Item A 100
Item B 102
解决方案
内部查询计算每个产品的价格数量和多次存在的价格,然后外部查询对产品求和
SELECT product_item, SUM(item_count)
FROM
(SELECT product_item, price, count(*) as item_count
FROM EQ
WHERE date >= '2018/11/01'
AND date <= '2018/11/30'
GROUP BY product_item, price
HAVING (COUNT(*) > 1)) AS a
GROUP BY product_item
我不确定要使用什么日期格式,所以你需要调整它
推荐阅读
- java - Hibernate和存储过程的关系以及如何解决抛出表存在异常的创建临时表问题
- python - ValueError:字段“id”需要一个数字,但得到了“demo@gmail.com”
- bootstrap-5 - Livewire offcanvas Bootstrap 5
- azure - 在 SharePoint 子站点上使用 Azure 进行 SharePoint PnP 预配
- python - 在 Python 中使用伪代码解释 Dijkstra 算法时遇到问题
- java - 如何重定向到 Cmis 文件夹?
- mongodb - 查询 MongoDB 数据库时忽略文本记录单词之间的字符子串
- angularjs - 如何清理光滑网格中的行数据?
- django - 在 django 应用程序中收集静态文件时发生 botocore ClientError
- typescript - 如何使用 CDK 为 CORS 正确配置 APIGateway