MySQL刪除重複項——delete+group by

今天在處理股票數據的時候發現同一只股票的季頻數據存在相同日期的數據,所以需要通過delete+group來處理數據

1.在做多表查詢,或者查詢的時候產生新的表的時候會出現這個錯誤:Every derived table must have its own alias(每一個派生出來的表都必須有一個自己的別名

當執行這條sql語句的時候就會出現Every derived table must have its own alias;

DELETE FROM `T_Security_MShare_StockHistoryAchieve` 
WHERE ID in 
(SELECT ID  FROM 
 (SELECT ID FROM `T_Security_MShare_StockHistoryAchieve` where NVC_CODE='Y' GROUP BY DTM_INDEX_DATE))

2. 下面這條語句就會產生一張新的表,和前面的表stock聯合查詢,但是mysql要求每一個派生出來的表都必須有一個自己的別名,那我給派生表加上別名即可;

SELECT ID FROM `T_Security_MShare_StockHistoryAchieve` where NVC_CODE='Y' GROUP BY DTM_INDEX_DATE

eg:修改後的sql,直接在新生產的表中加入 他的別命名就行(“as a”或者“a”),“a”爲新表的別名 

3.

DELETE FROM `T_Security_MShare_StockHistoryAchieve`
 WHERE ID in 
(SELECT ID  FROM  
(SELECT ID FROM `T_Security_MShare_StockHistoryAchieve` where NVC_CODE='Y' GROUP BY DTM_INDEX_DATE) As p)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章