sql - SQL 对列中具有相同数据的行进行分组
问题描述
我的数据是什么样的:
它是同时生成的 5 个数据点。我想将所有五个组合成一排。
我尝试使用以下查询:
SELECT
DateAndTime as Time,
(SELECT Val WHERE TagIndex = 0) as Normalized_Vac,
(SELECT Val WHERE TagIndex = 1) as Avgerage_Vac,
(SELECT Val WHERE TagIndex = 2) as RAL_ACT,
(SELECT Val WHERE TagIndex = 3) as RAL_CMD,
(SELECT Val WHERE TagIndex = 4) as PPH_weight
FROM
Line_32_floats
GROUP BY
DateAndTime;
但我得到了错误:
列 'Line_32_floats.TagIndex' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。
解决方案
我建议条件聚合:
SELECT DateAndTime as Time,
MAX(CASE WHEN TagIndex = 0 THEN Val END) as Normalized_Vac,
MAX(CASE WHEN TagIndex = 1 THEN Val END) as Avgerage_Vac,
MAX(CASE WHEN TagIndex = 2 THEN Val END) as RAL_ACT,
MAX(CASE WHEN TagIndex = 3 THEN Val END) as RAL_CMD,
MAX(CASE WHEN TagIndex = 4 THEN Val END) as PPH_weight
FROM Line_32_floats f
GROUP BY DateAndTime;
推荐阅读
- yii2 - Yii2 搜索模型
- c# - 在 ASP.NET MVC 中显示和搜索特定记录
- python - unindent 不匹配任何外部缩进级别。当我要标记字符串时
- ios - MobileVLCKit 视频全屏
- php - 如何通过多页使用php将pdf文件插入数据库?
- php - 定期检查从 Laravel 中的 3rd 方应用程序发布的数据
- shader - 为什么 Unreal 材质中的饱和在现代图形硬件中被认为是免费的
- json - 使用 reactjs 和 redux 在多个组件中获取 JSON 数据
- python - cx_Freeze:pytesseract 的可执行文件在其他 PC 上失败
- vue.js - 如何使用 axiosjs 从这样的数组中获取数据