시나리오 :한 달에 매일 총 # 개의 레코드를 얻는 하나의 쿼리
테이블이 있으며 날짜/시간 열이 있습니다.
이번 달의 일일 등록 수를 보여주는 웹 페이지에 막대 그래프를 표시하려고합니다.
하나의 검색어로 어떻게 할 수 있습니까? 즉 그날의 등록 건수 (현재 달)에 대한 필드가있는 결과를 얻으십시오.
시나리오 :한 달에 매일 총 # 개의 레코드를 얻는 하나의 쿼리
테이블이 있으며 날짜/시간 열이 있습니다.
이번 달의 일일 등록 수를 보여주는 웹 페이지에 막대 그래프를 표시하려고합니다.
하나의 검색어로 어떻게 할 수 있습니까? 즉 그날의 등록 건수 (현재 달)에 대한 필드가있는 결과를 얻으십시오.
select day(Date), count(*)
from table
where month(Date) = month(NOW()) and year(Date) = year(NOW())
group by day(Date)
"Where"절이 현재 달을 선택합니다.
SELECT Day, COUNT(*)
FROM XXX_Users
GROUP BY DATE(created) as Day
:
SELECT Day, COUNT(*)
FROM XXX_Users
GROUP BY "date extracted from datetime" as Day
당신이 DATE 기능을 사용할 수 날짜에서 날짜를 추출하려면 다음이 의사 코드 같은 count(whatever)
또는 count(distinct whatever)
대신 count(*)
의 ...
뭔가를 사용할 수 있습니다 또는 내부의 모든 로직을 묶는 저장 프로 시저를 만들 수 있습니다.
'month (date)'및'year (dat) 이후로 날짜 범위를 사용하는 것이 더 나을 수도 있습니다. e)'는 색인이 생성되지 않습니다. –
이렇게하면 하루 종일 걸리지는 않으며, DB에 레코드가있는 것뿐입니다. 모든 요일에 갈 수있는 방법이 없으며 기록이없는 경우 0을 얻으시겠습니까? – Alvaro
@Steve, 좋은 질문입니다. 실제로 코딩 과정에서 여러 번 보았습니다 ... 가장 좋은 해결책은 프레젠테이션 계층에서 SQL 외부에서이를 수행하는 것입니다. – TMS