You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写单条MySQL查询按tag分组统计编码总数、已用及未用数量

解答

完全可以通过单条SQL实现需求,使用条件聚合语法即可完成多维度统计:

基础统计查询(返回结构化字段)

SELECT 
  tag,
  COUNT(*) AS total_count,
  SUM(used = 1) AS used_count,
  SUM(used = 0) AS unused_count
FROM codes 
WHERE user_id = ? 
GROUP BY tag;

字段说明:

  • tag:分组标签
  • total_count:当前标签下的编码总数量
  • used_count:当前标签下已用编码数量(used=1的记录数)
  • unused_count:当前标签下未用编码数量(used=0的记录数)

逻辑说明:MySQL中布尔判断表达式返回值为1(真)或0(假),对表达式求和即可直接得到符合条件的记录总数,无需写复杂的CASE WHEN嵌套。

直接生成目标格式输出的查询

如果需要直接得到你示例里拼接好的文本结果,可以用嵌套查询加字符串拼接:

SELECT 
  CONCAT(tag, ':', used_count, '条已用,', unused_count, '条未用,总计', total_count, '条编码') AS tag_stat
FROM (
  SELECT 
    tag,
    COUNT(*) AS total_count,
    SUM(used = 1) AS used_count,
    SUM(used = 0) AS unused_count
  FROM codes 
  WHERE user_id = ? 
  GROUP BY tag
) AS tag_stats;

查询返回的tag_stat字段内容和你给出的示例格式完全一致。

内容的提问来源于stack exchange,提问作者fraxool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 17:06:04