我在MYSQL表中有交易数据。其中一个字段是供应商的名称。然而,在许多记录中,未指定供应商(字面意思是' unex')。
所以数据看起来像:
ID Date Supplier ---
1 1 Nov 2013 Green supplier
2 3 Nov 2013 Red supplier
3 15 Nov 2013 UNSPECIFIED
4 2 Dec 2013 UNSPECIFIED
5 6 Nov 2013 Blue supplier
6 20 Nov 2013 UNSPECIFIED
x 100,000等
我可以使用SUM(IF(date_format(日期,'%b,%Y')=' 2013年11月',1,0)对每个月进行汇总和分组 得到类似的东西 -
Nov 2013 Dec 2013
UNSPECIFIED 1 2
Green supplier 1 0
Red supplier 1 0
Blue supplier 0 1 etc
但是我想要一个简化版本,将结果分解为(1)是未知的,(2)其他所有内容。所以结果看起来像 -
Nov 2013 Dec 2013
UNSPECIFIED 1 2
'Not UNSPECIFIED' 2 1 etc
虽然仍然保留每月的总和格式。 我相信这应该很简单,但我不能想到如何。有人可以建议吗?
答案 0 :(得分:2)
您可以在查询中的group by
添加条件逻辑:
select (case when supplier = 'UNSPECIFIED' then 'UNSPECIFIED' else 'SPECIFIED' end),
. . .
from . . .
group by (case when supplier = 'UNSPECIFIED' then 'UNSPECIFIED' else 'SPECIFIED' end);
在MySQL中,您实际上不必重复group by
:
group by 1
答案 1 :(得分:0)
您可以将case
声明用作
case when supplier='UNSPECIFIED' then 'UNSPECIFIED' else 'Not UNSPECIFIED' end column_name