2
我有結構類似於下面MySQL的聚合列不同的條件查詢永遠不會結束
DATETIME | UNITID | VALUE
----------------------------------
2017-01-01 00:00 | A | 50
2017-01-01 00:00 | B | 54
2017-01-01 00:00 | C | 12
2017-01-01 00:05 | A | 9
2017-01-01 00:05 | B | 8
2017-01-01 00:05 | C | 55
2017-01-01 00:10 | A | 12
隨着DATETIME
和UNITID
作爲索引大MySQL表由三列。
表中的總長度爲33萬行,其包括〜4歲的數據和〜300個單元ID
我所希望做的是聚集體本由UNITID
例如基
DATETIME | VALUE(AB) | VALUE(C)
----------------------------------------
2017-01-01 00:00 | 104 | 12
2017-01-01 00:05 | 17 | 55
2017-01-01 00:10 | 12 | Null
我已經能夠創建一個查詢,要做到這一點,如下
SELECT DISTINCT
T1.DATETIME AS DATETIME,
(SELECT
SUM(VALUE)
FROM
tbl_name AS T2
WHERE
T2.DATETIME= T1.DATETIME
AND T2.UNITID IN ('A', 'B')) AS VALUE(AB),
(SELECT
SUM(VALUE)
FROM
tbl_name AS T3
WHERE
T3.DATETIME= T1.DATETIME
AND T3.UNITID IN ('C')) AS VALUE(C)
FROM
tbl_name AS T1
WHERE
DATETIME >= '2017-01-01'
AND DATETIME <= '2017-01-02 23:55'
其實我已經約10組的UnitID的,我傳遞給查詢,並將其成功作品,如果我有一個LIMIT
的在查詢例如限制爲100000行需要12秒鐘才能獲取,但是取消限制只是永遠不會結束。我的SQL技能不是很好,我無法弄清楚造成這種情況的原因。請注意,對於此查詢只有〜105000個不同的行
任何幫助非常感謝。