2017-09-10 17 views
-1

實施例: 有一個在數據庫中的數據(每個數字是在不同的場):如何計算出現在數據的數量(在多個字段)

1 | 2 | 2 | 3 | 4 | 5 | 2 

現在我怎樣才能數字2的出現次數? 請幫幫我,謝謝!

+0

你想每行出現次數?或在整個桌子上? – Jakumi

+0

我想選擇所有出現次數2次超過3次在整個表格 – bfther

+0

中,這超出了您的原始問題,但是sagi的答案是正確的。 (他/她的答案提供了每行的計數),但你可以只'在哪裏CalculatedColumn> 3' – Jakumi

回答

1

您可以使用CASE EXPRESSION

SELECT t.*, 
     CASE WHEN t.Col1 = 2 THEN 1 ELSE 0 END + 
     CASE WHEN t.Col2 = 2 THEN 1 ELSE 0 END + 
     CASE WHEN t.Col3 = 2 THEN 1 ELSE 0 END + 
     .... as CalculatedColumn 
FROM YourTable t 
+0

感謝您回答我的問題,我嘗試了您的方法並得到以下錯誤:DB2 SQL錯誤:SQLCODE = -206,SQLSTATE = 42703,SQLERRMC = AS,DRIVER = 4.19.49。 2)[代碼:-727,SQL狀態:56098] DB2 SQL錯誤:SQLCODE = -727,SQLSTATE = 56098,SQLERRMC = 2; -206; 42703; AS,DRIVER = 4.19.49 – bfther

+0

這是我的調用方式: SELECT噸。*, CASE WHEN t.f1wr_count = 0 THEN ELSE 1 0 END + CASE WHEN t.f2wr_count = 0 THEN ELSE 1 0 END + CASE WHEN t.f3wr_count = 0 THEN ELSE 1 0 END + CASE WHEN t.f4wr_count = 0 THEN 1 ELSE 0 END + CASE WHEN t.f5wr_count = 0 THEN 1 ELSE 0 END + CASE WHEN t.f6wr_count = 0 THEN 1 ELSE 0 END + CASE WHEN t.f7wr_count = 0 THEN 1 ELSE 0 END + as CalculatedColumn FROM H032.SCC_ROLLDATA t – bfther

+0

刪除最後一個'+'號,它是一個額外的@bfther - >'ELSE 0 END + as Calc..' – sagi

相關問題