FDR_DATA라는 테이블이 있습니다. 테이블에는 다음 필드가 있습니다. 필드는 B1_NAME, B2_NAME, B3_NAME, 요소, DATUM, WERT입니다. 이제 이 테이블의 총 데이터 수를 쿼리하고 다음 출력이 생성됩니다.
sql> select count (*) from fdr_data where datum like (select sysdate -1 from dual);
(개수만 표시됩니다.) 그런데 데이터(날짜) 필드 옆에 개수를 인쇄하고 싶습니다.
DATUM COUNT
04.05.2016 899019
그러한 출력을 얻으려면 쿼리를 어떻게 작성해야 합니까?
이것을 시도했지만
sql> select DATUM, count (*) from fdr_data where datum like (select sysdate -1 from dual)
원하는 출력을 얻을 수 없습니다.
답변1
sql> select count (*) as fdr_data from fdr_data where datum like (select sysdate -1 from dual);
산출:
fdr_data
--------
899019
답변2
다른 방법을 제공하는 SQL 방언이 있는지는 모르겠지만 어떤 SQL 서버를 사용하고 있는지 지정하지 않았으므로 다음과 같이 하면 작동합니다.
SELECT datum,count(*) FROM fdr_data WHERE datum LIKE (SELECT sysdate-1 FROM dual) GROUP BY datum;
WHERE 절이 결과에 행이 하나만 있다는 것을 의미할 때 GROUP BY 절을 추가해야 한다는 것이 이상하게 느껴지지만 파서는 이를 알지 못하므로 이를 만족시키기 위해 추가합니다.