解決MySQL左聯LIFT JOIN做求和數據出現重復數據。


SELECT
    GROUP_CONCAT( DISTINCT fa.nickname ),
    GROUP_CONCAT( DISTINCT ev.facility_id ),
    CONVERT (
        SUM( ev.income ),
    DECIMAL ( 10, 2 )) AS su,
    COUNT( ev.income ),
    GROUP_CONCAT( ev.income )
FROM
    every_day_income AS ev
    LEFT JOIN ( SELECT GROUP_CONCAT( DISTINCT nickname ) AS nickname, facility_id FROM facility GROUP BY facility_id ) AS fa ON ev.facility_id = fa.facility_id
GROUP BY
    ev.facility_id
ORDER BY
    su DESC

第一天寫好的查尋語句,第一天可以用的,但今天用的時候,發現求和重復出現,導致數據錯誤。

網上查尋了,主要還是左聯的時候,右邊表中的數據有多條滿足條件,導致左聯的時候,左邊的數據被重復計算多次。

根據碰到的情況,將右邊表中的的數據進行去重,就是LEFT JOIN中的表去重,解決問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM