我如何在where子句中包含聚合列?

我如何在where子句中包含聚合列?,第1张

概述我有一个2列的表farmer_crops,用于存储农民与其种植的农作物之间的关系.农民可以种植一种或多种农作物.下面的查询为我提供了不同的农民和他们种植的农作物.我怎样才能使种植农作物的农民总数超过一(my_crops> 1)?select distinct farmer_id, count(crop_id) as my_crops from farmer

我有一个2列的表farmer_crops,用于存储农民与其种植的农作物之间的关系.农民可以种植一种或多种农作物.下面的查询为我提供了不同的农民和他们种植的农作物.我怎样才能使种植农作物的农民总数超过一(my_crops> 1)?

select distinct farmer_ID,count(crop_ID) as my_crops from farmer_crops group by farmer_ID

[编辑]使用GMB的提示,下面的查询向我提供了总共2330行,这是正确的.

SELECT farmer_ID,count(crop_ID) as my_crops FROM farmer_crops GROUP BY farmer_IDHAVING count(crop_ID) > 1

但是,我真正想要的是下面的查询,只是总数,但是total_farmers列返回的数字8330是错误的.

SELECT count(farmer_ID) as total_farmers FROM farmer_cropsHAVING count(crop_ID) > 1
最佳答案聚集表达式的条件不能在WHERE子句中使用.您需要改用HAVING:

SELECT farmer_ID,count(crop_ID) as my_crops FROM farmer_crops GROUP BY farmer_IDHAVING count(crop_ID) > 1

与WHERE子句不同,HAVING子句位于GROUP BY子句之后.

注意:SELECT disTINCT通常对于GROUP BY没有意义,我将其删除.

总结

以上是内存溢出为你收集整理的我如何在where子句中包含聚合列? 全部内容,希望文章能够帮你解决我如何在where子句中包含聚合列? 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166017.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存