如何通过一定的标准每行数
问题描述:
我有一个条件表应用:如何通过一定的标准每行数
H=Hour, P=Present, S=Sick, A=Alpha
ID Name H1 H2 H3 H4 P S A
1 AAA h h h h
2 BBB s s h h
3 CCC a h h h
如何得到结果是这样的:
ID Name H1 H2 H3 H4 P S A
1 AAA h h h h 4 0 0
2 BBB s s h h 2 2 0
3 CCC a h h h 3 0 1
我一直2天浏览和浏览,尝试尝试,但我想不通我怎么能执行MySQL查询解决......
在此先感谢和抱歉,我的英语不好
答
我做了一些假设,有关数据是在您的文章是什么,我想下面的查询可能是你一直在试图拼凑什么:
SELECT
id 'ID',
name 'Name',
h1 'H1',
h2 'H2',
h3 'H3',
h4 'H4',
SUM(if(h1='h',1,0)+if(h2='h',1,0)+if(h3='h',1,0)+if(h4='h',1,0)) as 'P',
SUM(if(h1='s',1,0)+if(h2='s',1,0)+if(h3='s',1,0)+if(h4='s',1,0)) as 'S',
SUM(if(h1='a',1,0)+if(h2='a',1,0)+if(h3='a',1,0)+if(h4='a',1,0)) as 'A'
FROM myTable
GROUP BY id
随意忽略的列名,因为这只是匹配你在帖子中的内容。
基本上,我们只是检查每个字段在每个字段中的值的发生情况,如果它存在则提供'1',如果不存在则提供'0'。然后,我们将所有这些结果加在一起以产生该事件的多列计数。
然后我们GROUP BY id
来只计算每个id的行。
虽然这可能是一个更优雅的方法。
+0
谢谢克里斯J,我已经尝试过,它为我工作......非常感谢你...... –
你可以更好地格式化你的文章,很难看到什么是数据和什么是列名 –