您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQL:返回每个人的最常见值

SQL:返回每个人的最常见值

请学习使用显式JOIN表示法,而不是旧的(1992年前)隐式连接表示法。

老式:

SELECT transactionTable.rating as MostCommonrating 
FROM personTable, transactionTable 
WHERE personTable.transactionid = transactionTable.transactionid 
AND personTable.personid = 1
GROUP BY transactionTable.rating 
ORDER BY COUNT(transactionTable.rating) desc 
LIMIT 1

首选样式:

SELECT transactionTable.rating AS MostCommonrating 
  FROM personTable
  JOIN transactionTable 
    ON personTable.transactionid = transactionTable.transactionid 
 WHERE personTable.personid = 1
 GROUP BY transactionTable.rating 
 ORDER BY COUNT(transactionTable.rating) desc 
 LIMIT 1

每个JOIN都需要一个ON条件。

另外,personID数据中的值是字符串,而不是数字,因此您需要编写

 WHERE personTable.personid = "Ben"

例如,使查询显示的表上起作用。

您要查找的是一个聚合的聚合:在这种情况下,是一个计数的最大值。因此,任何通用解决方案都将同时涉及MAX和COUNT。您不能将MAX直接应用到COUNT,但是可以将MAX应用于子查询中某个列恰好是COUNT的列。

使用测试驱动查询设计TDQD建立查询

SQLServer 2022/1/1 18:51:50 有464人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶