如何用SQL统计索引x对应的不同y条目数并转换关系结构
解决方案:用分组去重计数实现需求
嘿,这个需求其实是SQL里很典型的分组统计场景,咱们一步就能搞定!
核心思路是按x列分组,然后统计每个分组里不重复的y值数量,具体SQL代码如下(记得把your_table换成你实际的表名):
SELECT x, COUNT(DISTINCT y) AS z FROM your_table GROUP BY x;
代码细节解释:
GROUP BY x:把原表的数据按照x的取值拆分成独立的分组,比如x=1的所有行归为一组,x=2的所有行归为另一组。COUNT(DISTINCT y):对每个分组里的y值去重后计数,这样就能精准得到每个x对应的不同y条目数量,也就是你需要的z列。AS z:给统计结果起别名,和你想要的输出列名完全匹配。
用你提供的测试数据验证的话:
- x=1的分组里,y有0、1、2、3四个不同值,所以
COUNT(DISTINCT y)返回4; - x=2的分组里,y有5、6两个不同值,返回2;
完全符合你预期的输出结构。
内容的提问来源于stack exchange,提问作者John Miller
相关产品推荐
相关产品推荐

