sql-server - 如何运行查询以按邮政编码拆分状态?
问题描述
我有 3 列,State、zip 和收入。
Select State, SUM(Revenue)
FROM table
group by State
我想拆分以 216,218 和 219 开头的邮政编码为东,其余为西的马里兰州,因此结果将是 51 个州的 MD 东和 MD 西值。
解决方案
Select
State,
CASE WHEN
-- If it's not MD, then just use the state
State <> 'MD'
THEN
State
ELSE
-- It is MD, so work out which sort of MD it is
CASE WHEN LEFT(Zip,3) IN ('216','218', '219') THEN
CONCAT(State, ' East')
ELSE
CONCAT(State, ' West')
END
END,
SUM(Revenue)
FROM table
--- Make sure you match grouping for aggregate functions
group by
State,
CASE WHEN LEFT(Zip,3) IN ('216','218', '219') THEN
CONCAT(State, ' East')
ELSE
CONCAT(State, ' West')
END
推荐阅读
- php - 如何使用 Laravel 中单个列的计数功能进行排序?
- python - VTK:与 Actor/Assembly 交互,但无需直接单击它
- google-sheets - 如何创建使用名为 TOTAL 的谷歌工作表作为数据源的多个工作表?
- powershell - Azure 广告将成员从一个组添加到另一个组
- c# - 硬件安全模块:如何使用数字签名
- apache - 应用程序和网站的虚拟主机,在端口 80 和应用程序 81 访问网站?
- reactjs - Cancelling axios requests when doing 'instant search' type input boxes
- flutter - 使 Column 的子项(例如容器布局)水平 wrap_content
- sql - 执行带有输出参数的存储过程会等到它完成执行吗?
- android-studio - 如何返回 GitHub 的一个点并且仍在 Android Studio 的 master 分支中?