Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将不同的计数值分组到一行中_Mysql_Sql - Fatal编程技术网

Mysql 将不同的计数值分组到一行中

Mysql 将不同的计数值分组到一行中,mysql,sql,Mysql,Sql,Sql fidle 这是我正在使用的查询的一个简化部分,在小提琴上,它按照我所需要的方式工作,它将属于指定用户的每一篇文章的每一篇idOfPost都计算为相同的,在这种情况下,其中UserId=120 它将结果分组到一行中 但是当我在WAMP中运行这个时,我得到了以下错误\1140,这与sql模式=only_full_group_by不兼容,我认为这是因为我也需要按PostId分组,但是如果我这样做,我会得到多行,当然,因为帖子的id是不同的,但是我想把它放在一行 因此,我的问题是:我是否应该禁

Sql fidle

这是我正在使用的查询的一个简化部分,在小提琴上,它按照我所需要的方式工作,它将属于指定用户的每一篇文章的每一篇
idOfPost
都计算为相同的,在这种情况下,
其中UserId=120
它将结果分组到一行中

但是当我在
WAMP
中运行这个时,我得到了以下错误
\1140,这与sql模式=only_full_group_by
不兼容,我认为这是因为我也需要按
PostId
分组,但是如果我这样做,我会得到多行,当然,因为帖子的id是不同的,但是我想把它放在一行

因此,我的问题是:我是否应该禁用
sql\u mode=only\u full\u group\u by
,我不确定这会产生什么影响,或者我的表结构有问题,需要更改,可能包括
Likes
表中的
UserId
,或者我的查询有问题,需要更改


WAMP上的mysql版本5.7.14在子查询中使用
groupby
,在主查询中使用
sum()
聚合:

SELECT UserId, sum(totalLikes) AS totalLikes
FROM Users 
LEFT JOIN Posts a ON ownerId = UserId
LEFT JOIN (
    select idOfPost, count(idOfPost) AS totalLikes 
    from Likes
    group by idOfPost) b ON idOfPost = PostId
WHERE UserId = 120 
GROUP BY UserId

SELECT UserId, sum(totalLikes) AS totalLikes
FROM Users 
LEFT JOIN Posts a ON ownerId = UserId
LEFT JOIN (
    select idOfPost, count(idOfPost) AS totalLikes 
    from Likes
    group by idOfPost) b ON idOfPost = PostId
WHERE UserId = 120 
GROUP BY UserId