일일 MySQL 테이블에서 주간 (예 : Mon-Sun, 모드 = 1 매개 변수 YEARWEEK) 값을 재고로 가져 오려고합니다. 낮음, 높음, 열림 및 닫힘 값.MySQL GROUP BY YEARWEEK가 처음으로 작동하지 않습니다.
SELECT date, MIN(low), MAX(high)
FROM daily_stock_values WHERE stock_id = SOMESTOCK
AND date BETWEEN '2012-01-01' AND '2012-03-01' GROUP BY YEARWEEK(date, 1)
이 올바르게 출력 :
+------------+-----------+-----------+
| date | max(high) | min(low) |
+-----------+-----------+-----------+
| 2012-01-01 | ......... | ......... |
| 2012-01-02 | ......... | ......... |
| 2012-01-09 | ......... | ......... |
| 2012-01-16 | ......... | ......... |
| 2012-01-23 | ......... | ......... |
| 2012-01-30 | ......... | ......... |
| 2012-02-06 | ......... | ......... |
| 2012-02-13 | ......... | ......... |
| 2012-02-20 | ......... | ......... |
| 2012-02-27 | ......... | ......... |
+------------+-----------+-----------+
당신이 할 수있는 것처럼 예를 들어
, 다음 쿼리는 제대로 나에게 월 1 일 2012 년 사이의 주 동안가는 곳마다 3 월 1 일 2012 제공 모든 날짜가 정확하게 (결과의 더 낮은 범위 인 첫 번째 것 외에도) 월요일 - 일요일 주 첫날 인 월요일을 지정합니다. 그러나
, 내가 먼저 소개하고 (here 설명 된대로)뿐만 아니라 지속하려고 :
SELECT date, MIN(low), MAX(high),
SUBSTRING_INDEX(GROUP_CONCAT(CAST(open AS CHAR) ORDER BY date), ',', 1) AS open,
SUBSTRING_INDEX(GROUP_CONCAT(CAST(close AS CHAR) ORDER BY date DESC), ',', 1) AS close
FROM daily_stock_values WHERE stock_id = SOMESTOCK
AND date BETWEEN '2012-01-01' AND '2012-03-01' GROUP BY YEARWEEK(date, 1)
를이 불행하게도 내 GROUP BY를 엉망으로하고 날짜가 더 이상 월요일에 정렬되지됩니다 :
+------------+-----------+-----------+-----------+-----------+
| date | max(high) | min(low) | open | close |
+------------+-----------+-----------+-----------+-----------+
| 2012-01-01 | ......... | ......... | ......... | ......... |
| 2012-01-08 | ......... | ......... | ......... | ......... |
| 2012-01-15 | ......... | ......... | ......... | ......... |
| 2012-01-22 | ......... | ......... | ......... | ......... |
| 2012-01-29 | ......... | ......... | ......... | ......... |
| 2012-02-05 | ......... | ......... | ......... | ......... |
| 2012-02-12 | ......... | ......... | ......... | ......... |
| 2012-02-19 | ......... | ......... | ......... | ......... |
| 2012-02-26 | ......... | ......... | ......... | ......... |
| 2012-02-27 | ......... | ......... | ......... | ......... |
+------------+-----------+-----------+-----------+-----------+
여기에 무슨 일이 일어나고 있습니까? 감사!
답장을 보내 주셔서 감사합니다! 선택해야하는 날짜는 관찰 기간의 첫 번째 날짜로, 월요일이거나, 주어진 첫날이 월요일이 아닌 경우 그 날 (첫 번째 결과와 마찬가지로 두 번째 것과 다름)입니다. 이 경우 날짜에 관한 한 정확히 선택해야하는 것은 무엇입니까? – user1094786