首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加一组SQL的总和

问添加一组SQL的总和
EN

Stack Overflow用户
提问于 2017-04-26 05:56:08
回答 2查看 50关注 0票数 0

sql新手,在查找查询示例时遇到困难。

所以,我有一张桌子:

代码语言:javascript
复制
bought ( customer_name, month, year, quantity, product_name )

我想找出哪种产品在某一个月卖得最好。2014年4月

让我们说:

代码语言:javascript
复制
| Jan | April | 2014 | 7 | Watches |
| Ron | April | 2014 | 4 |  Rings  |
| Jan | April | 2014 | 4 |  Rings  |

现在我有:

代码语言:javascript
复制
SELECT product_name
FROM bought
WHERE month_bought = 'April' AND year_bought = 2014 AND 
           quantity_buy >= all (SELECT quantity_buy
                                FROM bought 
                                WHERE month_bought = 'April' AND year_bought = 2014
                               );

我不确定是否/在哪里为product_name使用GROUP BY。

EN

回答 2

Stack Overflow用户

发布于 2017-04-26 06:01:57

您需要聚合,因为多个客户可以购买相同的产品。这反过来建议使用HAVING而不是WHERE

代码语言:javascript
复制
SELECT product_name
FROM bought b
WHERE month_bought = 'April' AND year_bought = 2014 
GROUP BY product_name
HAVING SUM(quantity_buy) >= all (SELECT SUM(b2.quantity_buy)
                                 FROM bought b2
                                 WHERE b2.month_bought = b.month_bought AND 
                                       b2.year_bought = b.year_bought
                                 GROUP BY product_name
                               );

还有其他方式来表达这个查询。这似乎最接近你想要写的东西。

票数 1
EN

Stack Overflow用户

发布于 2017-04-26 06:03:03

在没有进一步测试的情况下,应该是这样的:

代码语言:javascript
复制
SELECT product_name

FROM bought

WHERE month_bought = 'April' AND year_bought = 2014 AND 

       sum(quantity_buy) = (SELECT max(sum(quantity_buy)) FROM bought 

       WHERE month_bought = 'April' AND year_bought = 2014 group by  product_name)
group by product_name;

如果销售数量相同,这将返回多个产品。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43621645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档