0
예는 가장 큰 소리로 말하는 :SQL은 집계 된 행과 같은 행에 다른 열의 값을 따기되지
2008-09-17
그러나
select max((close-open)/open) as daychange, date from prices;
:
select date from prices
where (Close-Open)/Open =
(select max((Close-Open)/Open) as daychange from prices);
나에게 올바른 결과를 줄 것이다
줄 것입니다 :
0.1082868629230968 | 2014-08-27
내가 분명히 원하는 것은 아닙니다.
이 쿼리를 수행하는 더 좋은 방법이나 더 좋은 방법은 없을까요? 나는 가격 변화가 가장 큰 날을 원한다.
당신은'Date' 칼럼에'GROUP BY'를 사용하지 않았기 때문에, date의 첫 번째 값을가집니다. 그래서 첫 번째 접근법이 옳다.'JOIN'에 대해서만'WHERE' 절을 변경할 수 있습니다. –
저는 MySQL 사용자가 아니지만 놀랍습니다 ... 적절한 그룹을 지정하지 않고 select에 집계 함수와 일반 열 참조를 모두 포함하면 MySQL에서 오류가 발생하지 않습니다. 발견 된 첫 번째 행에서 집계되지 않은 표현식의 데이터 값을 가져옵니다. –
'집계의 부정확 한 사용으로 인해 다른 모든 DBMS에 의해'선택이 최대 ((닫힘 - 열림/열림)을 일간, 날짜로부터 선택; MySQL은 무작위로 데이터를 반환합니다 ("불확정"이라고 함). 자세한 내용은 다음을 참조하십시오. http://rpbouman.blogspot.de/2007/05/debunking-group-by-myths.html –