我刚才说过使用SQL查询,并希望SQL中的一位专家可以帮助我解决这个难题。
主表格如下
表
Name Col1 Col2 Col3 Col4 col5
-------------------------------------
John T24 T24 T24 T97 J00
Tom T24 J01 - - -
James T24 L09 - N78 T97
John - - L56 - T24
我正在寻找SQL查询语法以获得以下两个结果“结果表1”和“结果表2”
在第一个查询中,我正在寻找同一行中John出现T24或T97的次数。在第二个查询中,T24或T97在同一名称的整个列中出现了多少次。我已将下面的示例表显示为结果表1和结果表2
结果表1
Name T24 T97 Sum of both
-------------------------------------
John 3 1 4
Tom 1 0 1
James 1 1 2
结果表2
Name T24 T97
----------------
John 2 0
Tom 1 0
James 1 1
提前感谢您的帮助。
答案 0 :(得分:0)
试试这个
Select Name
, sum( case Col1 when 'T24' then 1 else 0 end) +
sum( case Col2 when 'T24' then 1 else 0 end) +
sum( case Col2 when 'T24' then 1 else 0 end) +
sum( case Col3 when 'T24' then 1 else 0 end) +
sum( case Col4 when 'T24' then 1 else 0 end) as T24
, sum( case Col1 when 'T97' then 1 else 0 end) +
sum( case Col2 when 'T97' then 1 else 0 end) +
sum( case Col2 when 'T97' then 1 else 0 end) +
sum( case Col3 when 'T97' then 1 else 0 end) +
sum( case Col4 when 'T97' then 1 else 0 end) as T97
, sum( case Col1 when 'T24' then 1 else 0 end) +
sum( case Col2 when 'T24' then 1 else 0 end) +
sum( case Col2 when 'T24' then 1 else 0 end) +
sum( case Col3 when 'T24' then 1 else 0 end) +
sum( case Col4 when 'T24' then 1 else 0 end) +
sum( case Col1 when 'T97' then 1 else 0 end) +
sum( case Col2 when 'T97' then 1 else 0 end) +
sum( case Col2 when 'T97' then 1 else 0 end) +
sum( case Col3 when 'T97' then 1 else 0 end) +
sum( case Col4 when 'T97' then 1 else 0 end) as SumOfBoth
from Table
group by Name
详细了解Case here。