【发布时间】:2019-08-02 09:57:38
【问题描述】:
我有来自外部系统的下表(数据是匿名的):
我使用以下查询按列cola、colb 和colc 的组合对结果进行分组;并且 case 语句将 weekday 列中的 x 值替换为 amount 列中的相应值。这很好用。
SELECT
cola,
colb,
colc,
max(case when Mon = 'x' THEN amount END) as Mon,
max(case when Tue = 'x' THEN amount END) as Tue,
max(case when Wed = 'x' THEN amount END) as Wed,
max(case when Thu = 'x' THEN amount END) as Thu,
max(case when Fri = 'x' THEN amount END) as Fri,
max(case when Sat = 'x' THEN amount END) as Sat,
max(case when Sun = 'x' THEN amount END) as Sun
FROM tbltestquote
GROUP BY
cola,
colb,
colc
结果是:
我现在添加了一个名为threshold 的新列。可以看到,按cola、colb和colc分组时,threshold可以有多个值,如下图:
考虑到这一新列的我更新的 SQL 查询是这样的:
SELECT
cola,
colb,
colc,
threshold,
max(case when Mon = 'x' THEN amount END) as Mon,
max(case when Tue = 'x' THEN amount END) as Tue,
max(case when Wed = 'x' THEN amount END) as Wed,
max(case when Thu = 'x' THEN amount END) as Thu,
max(case when Fri = 'x' THEN amount END) as Fri,
max(case when Sat = 'x' THEN amount END) as Sat,
max(case when Sun = 'x' THEN amount END) as Sun
FROM tbltestquote
GROUP BY
cola,
colb,
colc,
threshold
这会返回带有两个新行的以下结果集,这是正确的:
我现在想添加一个新的布尔列,指示在按cola、colb 和colc 分组时是否有多个阈值,根据下面的模型结果集:
请注意,cola、colb 和 colc 组具有第二个阈值的所有行的 hasMultipleThreshold 列都为 TRUE,而不仅仅是一个不同的行。
如果确实可能的话,我不确定如何修改对此列的查询。任何指导表示赞赏。
【问题讨论】:
标签: sql sql-server tsql