我有一张桌子可以得到结果作为照片中的一张。
但是,我想通过以下方式获得结果:
1.首先,比较val字段中的数字,哪个组字段的数据必须是' total'。
2.然后,项目字段中具有相同值的所有数据将根据条件1的订单获得订单
照片的右边部分是我想要的结果。我应该如何使用ORDER BY设置逻辑?谢谢。
答案 0 :(得分:1)
一种方法是加入子查询,查找每个项目的总计,然后使用它进行排序。
SELECT
t1.item,
t1.[group],
t1.val
FROM yourTable t1
INNER JOIN
(
SELECT item, val AS total
FROM yourTable
WHERE [group] = 'total'
) t2
ON t1.item = t2.item
ORDER BY
t2.total DESC,
t1.item,
CASE WHEN t1.[group] = 'total' THEN 1 ELSE 0 END,
t1.[group];