MySQL - 分组由多个条件组成

时间:2010-12-03 13:11:35

标签: mysql group-by

我试图将cerain信息组合在一起但是A类和B类数据看起来非常不同。

我想弄清楚的是如何在group by语句中创建一个条件。


GROUP BY

click.employee_id, click.mode, asset.location, click.paper_size, asset.name

OR

click.mode, asset.location, click.paper_size, asset.name

拥有click.employee_id> = 10000000


如果employee_id大于100000,它应该只按第二个条件分组,而不是记住click.employee_id。

提前完成

2 个答案:

答案 0 :(得分:3)

如何在GROUP BY中使用CASE语句

这样的东西
GROUP BY

CASE WHEN click.employee_id > 100000 THEN 1 ELSE click.employee_id END , 
click.mode, 
asset.location, 
click.paper_size, 
asset.name

答案 1 :(得分:1)

我同意@astander。但是,有一点需要注意......

在SQL实际开始处理查询之前,它实际上运行了两次。一次只是为了获得查询的最终输出结构,以了解最终的列宽和数据类型。如果引擎装入的第一个记录是员工ID小于100,000范围,则CASE将返回1并且可能使用比员工ID列更小的数据列类型。所以,要修复,你可能想要

然后00000001否则click.employee_id ...

至少我之前已经看到过这种情况,而且只是单挑。