如何合并SQL查询以对比会员与非会员的平均骑行时间
合并两个平均骑行时间查询的方法
这里有两种简单的方法可以把你的两个查询合并成一个结果表,同时修正你原查询里的语法错误(第二个查询的"casual缺少闭合双引号):
方法1:GROUP BY 分组统计
直接按会员类型分组,一次性计算两类用户的平均骑行时间,结果以多行形式展示:
SELECT member_type, AVG(end_time - start_time) AS avg_ride_time FROM `table` WHERE member_type IN ("member", "casual") GROUP BY member_type;
这个查询会返回两行数据,每行对应一种用户类型及其平均骑行时间。
方法2:条件聚合(CASE WHEN)
如果希望把两个结果放在同一行(两列分别对应会员和非会员),可以用条件聚合实现:
SELECT AVG(CASE WHEN member_type = "member" THEN end_time - start_time END) AS avg_member_ride_time, AVG(CASE WHEN member_type = "casual" THEN end_time - start_time END) AS avg_casual_ride_time FROM `table`;
这个查询会返回一行数据,两列分别展示会员和非会员的平均骑行时间。
内容的提问来源于stack exchange,提问作者caskelle
相关产品推荐
相关产品推荐

