나는 Select the 3 most recent records where the values of one column are distinct과 비슷한 것을하려고 시도하지만 카운트와 함께 그룹을 보존해야 함을 의미합니다.MYSQL 그룹 카운트로 주문 하시겠습니까?
같은 예를 사용 :
id time text otheridentifier
-------------------------------------------
1 6 apple 4
2 7 orange 4
3 8 banana 3
4 9 pear 3
5 10 grape 2
SELECT *, COUNT(*) FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
적절한 횟수로 5 아이디, 3, 1을 반환을하지만 원하는 5, 4, 해당 게시물 2.
이 솔루션은
했다SELECT * FROM 'table' WHERE 'id' = (SELECT 'id'
FROM 'table' as 'alt'
WHERE 'alt'.'otheridentifier' = 'table'.'otheridentifier'
ORDER BY 'time' DESC
LIMIT 1) ORDER BY 'time' DESC LIMIT 3
하지만 난 거기에 그룹을 필요로하기 때문에, 카운트를 잡아 표시되지 않습니다 : 그의 시작 부분에 COUNT (*)를 추가하면 내가 ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
를 얻을.
sql에 그룹을 만들 수 없습니다. 뭘 계산하려고하는거야? –
첫 번째 쿼리에서 : 'otheridentifier'로 그룹화 된 항목의 수를 계산하려고합니다. – aaronwinborn