MySQL 查询查找这两天销售的产品

标签 mysql

我必须编写一个 MySQL 查询: 查找在这两天(2011 年 7 月 1 日和 2011 年 7 月 2 日)销售的产品以及销售的产品总数。

表格如下:

Date, Order_id, Product_id, Quantity
'01-JUL-11',O1,P1,5
'01-JUL-11',O2,P2,2
'01-JUL-11',O3,P3,10
'01-JUL-11',O4,P1,10
'02-JUL-11',O5,P3,5
'02-JUL-11',O6,P4,6
'02-JUL-11',O7,P1,2
'02-JUL-11',O8,P5,1
'02-JUL-11',O9,P6,2
'02-JUL-11',O10,P2,4

输出:

P1 17
P2 6
P3 15

到目前为止我尝试过的是:

SELECT PRODUCT_ID, TOTAL FROM
(SELECT PRODUCT_ID, COUNT(PRODUCT_ID) AS COUNTER, SUM(TOTAL) TOTAL FROM
(Select ORDER_DAY, PRODUCT_ID, SUM(QUANTITY) AS TOTAL
FROM ORDERS
GROUP BY ORDER_DAY, PRODUCT_ID) ALIAS_1
GROUP BY PRODUCT_ID) ALIAS_2
WHERE COUNTER > 1;

它提供了正确的输出,但我认为它可以优化。

最佳答案

如果表中只有这两个日期,那么您的查询应该可以工作。唯一的区别是,如果表格上有其他日期,您应该指定您想要的日期。

查看sqlfiddle:http://sqlfiddle.com/#!9/f700a5/6

Select `PRODUCT_ID`, SUM(`QUANTITY`)
FROM ORDERS
WHERE `ORDER_DAY` = '01-JUL-11' OR `ORDER_DAY` = '02-JUL-11'
GROUP BY PRODUCT_ID;

关于MySQL 查询查找这两天销售的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37903118/

相关文章:

php - CakePHP:帖子类型的表格组织

mysql - 如何从 MySQL 中的 SELECT 中排除与 LEFT JOIN 不匹配的记录?

MySQL JSONField 嵌套数组 SUM

mysql - 选择 10 行与其他表中的所有行连接

python - 循环内的 INSERT 未按我的预期工作(Python 2.7)

php - iphone 到 mysql blob 没有插入没有错误

php - 从现有表自动生成 Doctrine 实体

mysql - 检查mysql字段中第二个单词的大写

mysql - 如何在实体属性值(EAV)模型中查询实体的所有信息?

php mysql 重定向不起作用