sql - SQL 中的多列细分(取消分组依据)
问题描述
我的新数据grouped by
来自它的源,因此是否有任何代码可以分解或取消分组数据,然后根据分组的列分配其值。
桌子看起来像这样
| age | education | city | male | female
| 28 | Secondary | x | 0 | 2
| 28 | University| x | 1 | 2
| 29 | Primary | y | 1 | 0
我希望代码做这样的事情
| age | education | city | gender |
| 28 | Secondary | x | female |
| 28 | Secondary | x | female |
| 28 | University| x | male |
| 28 | University| x | female |
| 28 | University| x | female |
| 29 | Primary | y | male |
解决方案
简单的方法UNION ALL
是CROSS APPLY
SELECT M.age,education,city,'Male' as Gender
FROM #TAB M
CROSS APPLY
(
SELECT * FROM MASTER..SPT_VALUES WHERE TYPE = 'P' AND NUMBER BETWEEN 1 AND M.MALE
)MALE
UNION ALL
SELECT F.age,education,city,'Female' as Gender
FROM #TAB F
CROSS APPLY
(
SELECT * FROM MASTER..SPT_VALUES WHERE TYPE = 'P' AND NUMBER BETWEEN 1 AND F.FEMALE
)MALE
推荐阅读
- python - 在没有类属性的 HTML 中过滤元素
- javascript - Ajax HTML5 音频播放器在播放第二首曲目后无法加载下一首曲目
- function - 在一张图表上绘制生存随机森林、决策树和 KM 函数
- angular - 在另一个模块中使用在 app 模块中声明的组件
- reactjs - create-next-app 项目:运行“npm run build”时无法识别反应脚本
- sql - 减去表中同一月份的两列
- vpn - Wireguard 服务器未发送握手
- mongodb - 在 Mongoose 更新之前检查嵌套对象数组中的现有值
- html - 如何创建具有不同行的表
- node.js - 无法读取未定义的属性“id”。Express Js Node.js