欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql sum 重復

林雅南2年前13瀏覽0評論

在MySQL中,有時我們需要對數據進行匯總,這時候就可以使用SUM函數了。SUM函數能夠對指定列或行進行加總。但是,有時候數據中可能會有重復的記錄,此時如果不做處理,SUM函數的結果就會不準確,因為它會將重復的記錄也進行加總。下面我們就來看一下如何處理重復的記錄。

假設我們有一個名為orders的表,其中包含了顧客訂單的數據。我們想要計算所有訂單的總金額,可以使用如下語句:
SELECT SUM(price) FROM orders;
但是,如果我們的數據中存在重復記錄,那么上面的語句就會把重復的記錄也計算進去。比如說,我們有如下數據:
id  customer    price   
1   Alice       50      
2   Bob         30      
3   Alice       70      
4   Bob         40      
5   Charlie     20      
我們可以看到,Alice和Bob都有多個訂單,如果直接使用SUM函數,結果會算重復的訂單。為了避免這種情況,我們可以使用DISTINCT關鍵字,它可以對查詢結果進行去重。所以,我們可以改為以下查詢語句:
SELECT SUM(DISTINCT price) FROM orders;
這樣,我們就可以避免重復記錄對結果的影響了。

但是,需要注意的是,DISTINCT關鍵字會對所有列進行去重,而不僅僅是指定的列。如果我們只想對某一列進行去重,可以使用如下語句:

SELECT SUM(price) FROM (SELECT DISTINCT price FROM orders) AS subquery;
這樣,我們就先對價格進行去重,然后再對去重后的結果進行加總,就能得到不重復訂單的總金額了。