栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL GROUP GROUP BY的查询结果

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL GROUP GROUP BY的查询结果

PIVOT
ing既不容易(也不是很好)。我更喜欢使用
CASE

SELECt d.data_timestamp     , SUM( CASE WHEN data_id =  1 THEN data_value ELSE 0 END ) AS 'input_1'     , SUM( CASE WHEN data_id =  2 THEN data_value ELSE 0 END ) AS 'input_2'     ...     , SUM( CASE WHEN data_id = 20 THEN data_value ELSE 0 END ) AS 'input_20'FROM data GROUP BY data_timestampORDER BY data_timestamp ASC

但也

IF
可以在MySQL中使用:

SELECt d.data_timestamp     , SUM( IF(data_id =  1, data_value, 0) ) AS 'input_1'     , SUM( IF(data_id =  2, data_value, 0) ) AS 'input_2'     ...     , SUM( IF(data_id = 20, data_value, 0) ) AS 'input_20'FROM data GROUP BY data_timestampORDER BY data_timestamp ASC

另外,您可以使用20级

JOIN

SELECt d.data_timestamp     , d01.data_value AS 'input_1'     , d02.data_value AS 'input_2'     ...     , d20.data_value AS 'input_20'FROM  ( SELECt DISTINCT d.data_timestamp    FROM data  ) AS d   LEFT JOIN data AS d01    ON d01.data_timestamp = d.data_timestamp    AND d01.data_id =  1  LEFT JOIN data AS d02    ON d02.data_timestamp = d.data_timestamp    AND d02.data_id =  2  ...  --- 20 JOINs  LEFT JOIN data AS d20    ON d20.data_timestamp = d.data_timestamp    AND d20.data_id = 20ORDER BY d.data_timestamp ASC


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/385204.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号