mysql - 如何在 sql 中返回 group_concat 的计数?

标签 mysql sql

下面的查询返回用户拥有的所有不同订阅。在另一列中,我想返回给定订阅发生的次数。关于如何做到这一点有什么建议吗?

我试过包括

COUNT(GROUP_CONCAT(subscription_plan_id))

但它不起作用。

SELECT GROUP_CONCAT(subscription_plan_id)
FROM
  subscriptions
WHERE 
  created_at BETWEEN '2014-01-01' AND '2014-01-31'
GROUP BY
  user_id
HAVING
  COUNT(subscription_plan_id) > 1

期望的输出:

group_concat...count
1,2,3...2
2,3...5

最佳答案

只需将 count() 放在 select 中:

SELECT GROUP_CONCAT(subscription_plan_id), COUNT(subscription_plan_id) as NumSubs
FROM subscriptions
WHERE created_at BETWEEN '2014-01-01' AND '2014-01-31'
GROUP BY user_id
HAVING COUNT(subscription_plan_id) > 1;

关于mysql - 如何在 sql 中返回 group_concat 的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23433448/

相关文章:

mysql - 如何通过用户的 id 获取每个用户的姓名?

php - Mysql多选排除行

mysql - 创建PDF前端服务

php - 注册用户总数

mysql - 检索每组中的最后一条记录 - MySQL

java - 在objectdb中查询

MySQL 查询列名子字符串

c# - MySql.Data.MySqlClient.MySqlException :“Access denied for user ' hobo' @'49.70.207.34'(使用密码 : YES)”

mysql - 具有多个相似条件的查询,按 LIKE 排序

mysql - 内部加入一组不同的参数