我试图将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。
提前完成
答案 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 ...
至少我之前已经看到过这种情况,而且只是单挑。