2016-05-05 25 views
0

我有一个表userInteret,我想选择用户之间的通信interet max。 我尝试此查询:#1111 - 无效的使用组功能:MAX COUNT不适用于MYSQL5.5

SELECT nomInteretUser,idUser,COUNT(nomInteretUser) FROM `userInteret` 
WHERE nomInteretUser IN('piano','flute','chien') GROUP BY idUser 

但我想这个计数的MAX,当我尝试这样做:

SELECT MAX(COUNT(nomInteretUser))FROM userInteret 
WHERE nomInteretUser IN('piano','flute','chien') GROUP BY idUser; 

它总是让错误:

MySQL的一个répondu:文档

1111 - 组功能无效使用

+0

尝试此查询:'SELECT MAX(t.total) FROM (选择 \t \t COUNT(nomInteretUser)总 FROM \t userInteret WHERE \t nomInteretUser IN( \t \t“钢琴', \t \t'长笛', \t \t 'chien' \t) GROUP BY idUser )t' – 1000111

回答

3
SELECT idUser,COUNT(nomInteretUser) counts 
FROM userInteret 
WHERE nomInteretUser IN('piano','flute','chien') 
GROUP BY idUser 
ORDER BY counts DESC LIMIT 1 
+0

感谢Miahia,现在我不想改变结构“IN('piano','flute','chien')”to dynamic array ???? – user3070123

+1

@ user3070123如果你想要一个动态查询,问另一个问题,不要移动goalpost.It可能会涉及一些PHP – Mihai

1
SELECT MAX(num) FROM (
    SELECT nomInteretUser,idUser,COUNT(nomInteretUser) as num FROM userInteret WHERE nomInteretUser IN('piano','flute','chien') GROUP BY idUser 
) AS MYalias 
+0

我有这个错误:#1248 - 每个派生表都必须有自己的别名 – user3070123

+0

某些系统要求内部查询拥有自己的别名。在这种情况下,只需在该查询的末尾添加“AS {anyname}”。我改变了答案以反映这一点。 –

相关问题