Sql server 如何在SQL Server中使用带计数的selfjoin?
问题1:Sql server 如何在SQL Server中使用带计数的selfjoin?,sql-server,count,Sql Server,Count,问题1: SELECT voter, COUNT(*) AS voter FROM TxVotes WHERE timestamp BETWEEN '2017-07-21 00:00:00.000' and '2017-07-22 00:00:00.000' GROUP BY voter ORDER BY COUNT(*) DESC 工作 问题2: SELECT author FROM Comments WHERE AND
SELECT
voter, COUNT(*) AS voter
FROM
TxVotes
WHERE
timestamp BETWEEN '2017-07-21 00:00:00.000' and '2017-07-22 00:00:00.000'
GROUP BY
voter
ORDER BY
COUNT(*) DESC
工作
问题2:
SELECT
author
FROM
Comments
WHERE
AND language LIKE '%"ko"%'
工作
我需要查询3:
SELECT
TxVotes.voter, TxVotes.count(*) AS TxVotes.voter
FROM
TxVotes, Comments
WHERE
TxVotes.voter = Comments.author
AND timestamp TxVotes.BETWEEN '2017-07-21 00:00:00.000' AND '2017-07-22 00:00:00.000'
AND Comments language LIKE '%"ko"%'
GROUP BY
TxVotes.voter
ORDER BY
TxVotes.count(*) DESC
但这不起作用
如何在SQL Server中使用带计数的自联接?正确的语法是:
SELECT v.voter, COUNT(v.id) as numvoters
FROM TxVotes v JOIN
Comments c
ON t.voter = c.author
WHERE v.timestamp >= '2017-07-21' AND
v.timestamp < '2017-07-22' AND
c.language LIKE '%"ko"%'
GROUP BY v.voter
ORDER BY COUNT(DISTINCT v.id);
我很确定,如果你想统计选民人数,或者是选票和评论的组合。我猜的是选民,所以是选民
注:
请勿在FROM子句中使用逗号。始终使用正确的显式联接语法。
我怀疑你是否想包括2017年7月22日午夜的记录。因此,>=和正确的语法是:
SELECT v.voter, COUNT(v.id) as numvoters
FROM TxVotes v JOIN
Comments c
ON t.voter = c.author
WHERE v.timestamp >= '2017-07-21' AND
v.timestamp < '2017-07-22' AND
c.language LIKE '%"ko"%'
GROUP BY v.voter
ORDER BY COUNT(DISTINCT v.id);
我很确定,如果你想统计选民人数,或者是选票和评论的组合。我猜的是选民,所以是选民
注:
请勿在FROM子句中使用逗号。始终使用正确的显式联接语法。
我怀疑你是否想包括2017年7月22日午夜的记录。因此,>=并帮助我们帮助你-你能分享一些样本数据,你得到的结果和你试图得到的结果吗?你能附上错误消息吗?它不应该是txvoals.timestamp和Comments.language吗?帮助我们帮助你-你能分享一些样本数据吗,你得到的结果和你试图得到的结果?你能附上错误消息吗?它不应该是txvoters.timestamp和Comments.language吗?如果你计算不同的v.voter并按v.voter分组,计数不总是1吗?可能要计算不同的txvowers.PK_列?如果要计算不同的v.voter并按v.voter分组,计数不总是1吗?也许可以计算不同的txvots.PK_列?