我有一个要汇总的表格,我想以某种方式对其汇总结果进行排序。
假设这是一个包含水果和每周销售额的表格:我想要一个按水果列出总销售额的输出(到目前为止没有什么奇怪的),但水果应该按如下方式排序:
是否可以仅使用 SQL 来做到这一点,而不需要定义一个表来设置每种水果的排序?
如果使用特定的 SQL 方言或函数,我的目标是 SQLite
只需一个 CASE 语句...
ORDER BY CASE MyColum WHEN 'cranberries' THEN '001'
WHEN 'bananas' THEN '002'
WHEN 'strawberries' THEN '003'
ELSE MyColum
END
是的,可以在 SQL 中实现这种排序,而无需定义单独的表并仅使用 SQLite。方法如下:
SELECT fruit,
SUM(sales) AS total_sales
FROM your_table
GROUP BY fruit
ORDER BY
CASE fruit
WHEN 'cranberries' THEN 1
WHEN 'bananas' THEN 2
WHEN 'strawberries' THEN 3
ELSE 4
END,
fruit;
此查询首先使用 GROUP BY 和 SUM 执行标准聚合,以查找每种水果的总销售额。