小编Rus*_*bot的帖子

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

编辑:我正在使用MySQL,我发现了另一个同样问题的帖子,但它是在Postgres; 我需要MySQL.

获取SQL中另一列的每个值的最常见值

在广泛搜索本网站和其他网站之后我问这个问题,但是没有找到符合我意图的结果.

我有一个人员表(recordid,personid,transactionid)和一个事务表(transactionid,rating).我需要一个SQL语句,可以返回每个人最常见的评级.

我目前有这个SQL语句,它返回指定人员id的最常见评级.它有效,也许它可以帮助别人.

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
Run Code Online (Sandbox Code Playgroud)

但是,我需要一个声明来执行上述声明为personTable中的每个personid执行的操作.

我的尝试在下面; 然而,它超时我的MySQL服务器.

SELECT personid AS pid, 
(SELECT transactionTable.rating as MostCommonRating 
FROM personTable, transactionTable 
WHERE personTable.transactionid = transactionTable.transactionid 
AND personTable.personid = pid
GROUP BY transactionTable.rating 
ORDER BY COUNT(transactionTable.rating) desc 
LIMIT 1)
FROM persontable
GROUP BY personid
Run Code Online (Sandbox Code Playgroud)

你能给我的任何帮助都是非常有必要的.谢谢.

PERSONTABLE:

RecordID,   PersonID,   TransactionID
1,      Adam,       1
2,      Adam,       2
3,      Adam, …
Run Code Online (Sandbox Code Playgroud)

mysql sql

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

mysql ×1

sql ×1