我有一個大約25個colums的表XX。我只需要其中4個。MySQL:在日期範圍內提取2到10之間的ID
我想提取其中ID發生一次以上行 - 我想我可以用計數做到這一點(X) -
表看起來像
+------+------++------+------++------+------++------+------++------+------+
ID Date T1 T2 T3 .....
+------+------++------+------++------+------++------+------++------+------+
1 2016-01-01 1212 13412 121212
2 2016-01-01 1214 12541 121241
1 2016-01-01 1212 13412 121212
2 2016-01-01 1214 12541 121241
4 2016-01-01 1214 66666 121241
2 2016-01-01 1214 98889 121241
1 2015-01-01 1213 13412 121212
2 2016-01-01 1214 66666 121241
2 2016-01-02 1214 66666 121241
3 2016-01-01 1214 66666 121241
+------+------++------+------++------+------++------+------++------+------+
結果應該看起來像這
+------+------++------+------++------+------++------+------++------+------+
ID Date T1 T2 T3 .....
+------+------++------+------++------+------++------+------++------+------+
1 2016-01-01 1212 13412 121212
2 2016-01-01 1214 12541 121241
2 2016-01-01 1214 12541 121241
2 2016-01-01 1214 98889 121241
2 2016-01-01 1214 66666 121241
2 2016-01-02 1214 66666 121241
+------+------++------+------++------+------++------+------++------+------+
正如你所看到的,結果包含不同的時間日期間與計數> 1的ID(> 2016年1月1日,< NOW)。
我想我的選擇與此查詢
SELECT
id, id_date, T1, T2, T3
FROM XY
WHERE id IN (
SELECT id
FROM XY
GROUP BY id
HAVING count(*) > 1
) AND date > '2016-01-01'
GROUP BY id, id_date, T1, T2, T3
結果是從其他的方法,我做了不同的。我首先創建一個臨時表下面的查詢
SELECT id, id_date, T1, T2, T3 FROM XY
WHERE id_date > '2016-01-01'
GROUP BY id, id_date, T1, T2, T3
然後,我把一個ID我的臨時表的時間並與其他方法即將結果。他們是不同的。
長話短說:
我怎樣才能在特定日期範圍之間提取2至10之間的發生標識出一個表嗎?我的團隊中是否有錯誤?
'SELECT * FROM(UR#1 Query)WHERE count> 1 and Count <11 Group by'? – KikiTheOne
你的主要關鍵是什麼?在你的查詢中哪裏是「2和10」標準? – Strawberry
'在2和10之間有計數(*) - 就像你在問題中所說的那樣。 – Barmar