【问题标题】:Group by gives error "Invalid use of group function"Group by 给出错误“无效使用组功能”
【发布时间】:2018-07-17 22:45:22
【问题描述】:

我想从下表中获取每个用户获得的赞数:

  • Users 表:包含用户 ID、电子邮件、联系方式
  • 点赞表:其中包含图片ID,以及喜欢它的用户ID
  • 图片发布表*:包含图片ID,发布者的用户ID

我正在使用以下查询,它给出了错误“无效使用组函数”:

select sum(count(pid)) from p_like where pid in (
        select pid from p_picuser where userid in (
            SELECT userid from p_users 
            )
        ) GROUP BY pid

我做错了什么?

【问题讨论】:

  • 请以CREATE TABLE 语句提供架构,以INSERT INTO 语句提供示例数据以及该示例数据的所需结果。您还应该发布错误消息。
  • 它出错了,因为它没有意义。组列的计数总和是什么意思??????

标签: mysql sql group-by


【解决方案1】:

您无法汇总(总和、计数等)您作为分组依据的相同变量。如果您想按用户计数,请对其进行分组。所以也许可以试试:

SELECT userid, count(*) from p_like GROUP BY user

从您的p_like 表中按 userId 获取点赞数。严格来说,这就是你的答案。

然后,要添加更多用户详细信息,您可以将其设为子查询并加入您的 p_user 表,例如

SELECT email, like_count from p_users pusers, (
    SELECT userid, count(*) like_cound from p_like GROUP BY user
   ) group_sub
WHERE p_users.userid = group_sub.userid

【讨论】:

    猜你喜欢
    • 2021-01-01
    • 2020-10-17
    • 2016-12-11
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2014-04-04
    • 2015-11-28
    • 1970-01-01
    相关资源
    最近更新 更多