2010-12-11 8 views
1

나는 하나의 쿼리에서 가장 많은 양의 항목을 가진 요일을 선택하는 방법을 찾고 있습니다.이 테이블은 하루에 여러 항목을 저장할 수있는 id, name, datetime과 같은 테이블을 가지고 있습니다.MySQL의 항목 수순으로 정렬

지금까지 모든 항목을 반복하고 모든 값에 대해 $highest 정수를 비교했지만 한 SQL 쿼리로 더 쉽게 수행 할 수 있어야합니다. 누구 아이디어?

업데이트는 :

표는 기본적으로 결과가 특정 일에서 두 개의 항목이 있기 때문에 2010-11-30을 할 필요가있을 것이다이

 
id, name, datetime 
1, test, 2010-12-01 12:12:12 
2, test2, 2010-11-30 12:12:12 
3, test3, 2010-11-30 13:13:13 
4, test4, 2010-10-29 12:12:12

같은 것을보고 그것을 효과적으로 "최고의 날이다 "(또는 항목 수가 가장 많은 날).

+1

응답을 지금 정확한보고있다. "희망대로 작동하지 않았다"는 것은 무슨 뜻입니까? –

+0

두 스크립트 모두 항목 수가 가장 많은 날짜를 반환하지 않습니다. – baik

+1

4 개의 테스트 행으로 임시 테이블을 만들고 기존 응답의 쿼리를 실행했으며 요청한 결과를 제공합니다 (2010-11-30) . –

답변

3

이 시도 :

SELECT DATE(`datetime`) AS `date` 
FROM your_table 
GROUP BY `date` 
ORDER BY COUNT(*) DESC 
LIMIT 1 
+0

불행히도 이것은 희망대로 작동하지 않았고, 내 질문이 오도 된 것일 수 있으므로 그에 맞게 업데이트했습니다. – baik

+1

이 쿼리는'| 2010-11-30 |'이 가장 많은 항목이있는 날짜입니다. 그것이 당신이 요구 한 것입니다. –

+0

은 지금처럼 매력적이었습니다. 저의 실수였습니다.'date' 열에도'datetime' 레이블을 사용했는데 제대로 작동하지 않았습니다. – baik

4
SELECT id, name, DATE(`datetime`) AS `date`, COUNT(*) AS `count` 
FROM things 
GROUP BY `date` 
ORDER BY `count` DESC 

가장 높은 날짜 만 원하는 경우 끝에 LIMIT 1을 추가하십시오.

idname은 해당 날짜의 임의의 기록에서 나옵니다. 특정 날짜에 모든 레코드를 원한다면 다른 쿼리를 실행하거나 하위 쿼리를 사용해야합니다.

+0

불행히도 이것은 희망대로 작동하지 않았고, 내 질문이 오도 된 것일 수 있으므로 그에 맞게 업데이트했습니다. – baik

+0

이 쿼리는 다음을 반환합니다 :'| 2 | test2 | 2010-11-30 | 2 |'는 가장 많은 항목이있는 날짜에 해당하는 행입니다. 그것이 당신이 요구 한 것입니다. –

+0

COUNT (*)와 함께 작업했습니다. 감사합니다! – baik