从左连接SQL中选择时的COUNT(*)语法

问题描述 投票:0回答:4

我有一个LEFT JOIN查询

SELECT 
    a.id_user,b.id_post, COUNT(a.*) as total_users
FROM 
    posts as b
LEFT JOIN .....
LEFT JOIN .....
WHERE ....
ORDER BY .....
GROUP BY 
    a._id_user
LIMIT 3,10

如果我使用COUNT(a.*) AS total_users来检索用户数量,但是我收到了错误;什么是正确的语法?

sql count left-join
4个回答
0
投票

语法看起来应该更像:

SELECT a.?, COUNT(b.?) as total_users
FROM a LEFT JOIN
     b
     ON . . .
GROUP BY a.?

0
投票

你需要一个小组

选择a.id_user,b.id_post,来自......组的count(1)由a.id_user,b.id_post


0
投票

你可以Count([some specific field])Count(*),但正如戈登林诺夫正确地说,你通常不能使用Count(alias.*)

Count()函数需要一个表达式(单个值)。对于表达式不为NULL的每一行,将计算该行。 Count(*)是返回结果集中行数的特殊情况。


0
投票

以下返回所有帖子并计算以某种方式加入这些帖子的用户数量(在您的问题中没有关于此的信息)

SELECT 
    a.id_user,
    b.id_post,
    COUNT(DISTINCT a.id_user) as total_users
© www.soinside.com 2019 - 2024. All rights reserved.