如何计算出现在数据的数量(在多个字段)

问题描述:

实施例: 有一个在数据库中的数据(每个数字是在不同的场):如何计算出现在数据的数量(在多个字段)

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

现在我怎样才能数字2的出现次数? 请帮帮我,谢谢!

+0

你想每行出现次数?或在整个桌子上? – Jakumi

+0

我想选择所有出现次数2次超过3次在整个表格 – bfther

+0

中,这超出了您的原始问题,但是sagi的答案是正确的。 (他/她的答案提供了每行的计数),但你可以只'在哪里CalculatedColumn> 3' – Jakumi

您可以使用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