2017-03-16 62 views
-1

我有一列我標誌兩個值(0和1)。我如何從表中選擇所有,但只計算標誌列中的值1?如何計算列中的值?

SQL服務器

+0

'COUNT(CASE WHEN標誌=則1 END)'這應該工作 – Stephen

+1

你想要返回什麼?只有1的數量? – RexMaison

+0

真的有助於查看示例數據和預期結果來確認您的問題....也許您希望表格中所有記錄的所有1個標誌的總數,但在每條記錄上顯示該總數? (*)FROM your_table WHERE flag = 1 SELECT COUNT(*)FROM your_table WHERE flag = 1 SELECT * *,sum(flag)over(partition by null)as SumTotalOfFlag FROM Table A' – xQbert

回答

0

不太知道我理解的問題,但不會是這樣的:

SELECT * FROM your_table WHERE flag = 1 
+0

或者如果您確實需要計數, –

0

犯錯,你問如何執行一個簡單的SELECT語句,還是我失去了東西... 這樣的?

SELECT * 
FROM [YourTableName] 
WHERE FlagColumnName = 1 
0

這應該這樣做

Select count(0) 
from YourTableName 
where ValueField = 1 
1

你需要一個COUNTCASE表達式,像這樣:

COUNT(CASE WHEN flag = 1 then 1 END) 
0

我想,你的意思是這樣的:

SELECT COUNT(*) FROM [YOUR_TABLE] WHERE [FLAGCOLUMN] = 1; 
1

如果你想返回所有的價值觀,也有(使用選邏輯的),你可以使用使用over像這樣的窗口功能聚集的總計數:1

select 
    t.* 
    , count(case when flag = 1 then 1 end) over(partition by 1) as flag_1_count 
from t