sql求助:有一张玩家装备表【player_equip】记录有玩家的装备:UID和Equip。将每个玩家的6个装备称为1套装备,现在希望计算出每套装备的玩家数

作者寻求更高效的方法来统计大量装备组的数量,目前使用了GROUP_CONCAT和UNIONALL,但效率不高。他们希望减少重复代码以应对上百个装备组的情况。
摘要由CSDN通过智能技术生成
SELECT equip_set, COUNT(*) AS player_count
FROM (
    SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(Equip ORDER BY Equip), ',', 6 * n), ',', -6) AS equip_set
    FROM test_tc_3_Equip
    CROSS JOIN (
        SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4
    ) numbers
    GROUP BY UID, n
) AS equip_sets
GROUP BY equip_set;

我用这个sql能求出前面几组的装备组,但是如果有100个组,我就要写100次union all,有什么其他办法完成这个需求吗?各位大佬。需求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值