首先,对不起,我的题目太笼统了,我不知道该怎么说。
我使用的是一个遗留数据库,无法对模式进行更改,因此我不得不使用现有的数据库。
表设置(列):
id(正常的int id)
uniqueid(保存每个位置的uniqueid的列)
status(一个varchar列,可以包含三种状态之一:“completed”、“failed”、“attention”)
count(一个int列,表示每个状态中有多少用户
示例数据:
UniqueId Status Count
679FCE83-B245-E511-A42C-90B11C2CD708 completed 64
679FCE83-B245-E511-A42C-90B11C2CD708 Attention 1
679FCE83-B245-E511-A42C-90B11C2CD708 failed 101
4500990D-F516-E411-BB09-90B11C2CD708 completed 100
4500990D-F516-E411-BB09-90B11C2CD708 Attention 17
4500990D-F516-E411-BB09-90B11C2CD708 failed 516
557857BD-6B46-E511-A42C-90B11C2CD708 completed 67
557857BD-6B46-E511-A42C-90B11C2CD708 Attention 4
557857BD-6B46-E511-A42C-90B11C2CD708 failed 103
我要做的是选择所有记录,按uniqueid分组,每个状态都有一个单独的列,包含它们各自的计数。结果是这样的。。。
UniqueId, count(completed), count(failed), count(Attention)
679FCE83-B245-E511-A42C-90B11C2CD708 64 101 1
4500990D-F516-E411-BB09-90B11C2CD708 100 516 17
557857BD-6B46-E511-A42C-90B11C2CD708 67 103 4
我肯定我错过了一些基本的东西,但我似乎找不到的话,谷歌我的出路之一。
有人能把我推向正确的方向吗?
1条答案
按热度按时间iqih9akk1#
可以使用条件聚合: