簡體   English   中英

如果條件匹配,則SQL查詢以查找列中字段的總和,否則返回默認值

[英]SQL query to find the sum of fields in a column if a condition matches else return a default value

我需要以下情況的SQL查詢

House| SquareFoot| Color

House1  10        White
House2  20        White

僅當“顏色”字段中的所有值都相同時,查詢才應給出SquareFoot(30)的總和。 否則,在以下情況下,它應返回(0)

House| SquareFoot| Color

House1  10        White
House2  20        Red

請讓我知道可以通過SQL實現的最佳方法

您似乎想要:

SELECT (CASE WHEN MIN(Color) = MAX(Color)
             THEN SUM(SquareFoot)
             ELSE 0
        END) as return_value
FROM t;

在這里,首先我們將從計數中檢查是否非重復值= 1,然后總計將為sum(SquareFoot),或者如果非重復計數不為= 1,則總計將為0

select iif((select COUNT(distinct(Color)) from tblName) = 1, sum(SquareFoot), 0) as Total from tblName

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM