计算重复条目的数量

时间:2014-10-11 23:21:47

标签: mysql sql count

我对数据库相当新,我刚刚开始理解DML /查询,我有两个表,一个名为customer的客户数据和一个名为requested_games,这包含客户要求的游戏,我想写一个将返回请求超过两个游戏的客户的查询,到目前为止,当我运行查询时,我没有得到所需的结果,不确定我是否做得对。

任何人都可以帮助这个感谢,

以下是查询的片段

select customers.customer_name, wants_list.requested_game, wants_list.wantslists_id,count(wants_list.customers_ID)
from customers, wants_list
where customers.customers_ID = wants_list.customers_id
and wants_list.wantslists_id = wants_list.wantslists_id
and wants_list.requested_game > '2';

2 个答案:

答案 0 :(得分:0)

只包含一个HAVING子句

GROUP BY customers_ID
HAVING COUNT(*) > 2

取决于您可能需要进行数据设置的方式

HAVING COUNT(wants_list.requested_game) > 2

这就是我想描述查询如何工作的方式,也许它可以帮助您可视化查询的执行方式:)

SELECT正在餐厅点餐.... FROM是您要订购的菜单....
JOIN是您要包含的菜单部分 WHERE是您想要对订单进行的任何定制(也就是没有蘑菇).... GROUP BY(以及之后的任何内容)是在订单完成后出现在您的桌​​子上......

GROUP BY告诉您的服务器将您的食物类型组合在一起 ORDER BY正在说你想要的菜(我想要我的主菜然后是甜点然后是开胃菜) HAVING可以用来挑选任何意外留在盘子上的蘑菇....... 等等。

答案 1 :(得分:0)

  

我想写一个将返回客户的查询   要求超过两场比赛

为此,您需要执行以下操作

  
      
  • 首先,您需要使用GROUP BY根据客户对游戏进行分组(customers_id
  •   
  • 然后,您需要使用HAVING条款来获取请求超过两场游戏的客户
  •   
  • 如果您需要有关客户名称
  • 的更多信息,请将其设为SUBQUERY   
  • 最后,您使用customers与子查询(temp)之间的JOIN来显示有关客户的更多信息
  •   

与以下查询类似

 SELECT customers.customer_id, customers.customer_name, game_count 
 FROM (SELECT customer_id, count(wantslists_id) AS game_count
      FROM  wants_list
      GROUP BY customer_id
      HAVING count(requested_game) > '2') temp
 JOIN customers ON customers.customer_id = temp.customer_id