将SQL计数(*)与别名列一起使用
嗨,我想用它从我的国家获得金牌。我的问题是将SQL计数(*)与别名列一起使用,sql,data.stackexchange.com,Sql,Data.stackexchange.com,嗨,我想用它从我的国家获得金牌。我的问题是 SELECT TOP 1000 ROW_NUMBER() OVER(ORDER BY Gold badges DESC) AS [#], UserId AS [User Link], COUNT(*) AS "Gold badges" FROM Badges, Users WHERE Name IN ('Copy Editor', 'Electorate', 'Famous Question', 'Fanatic', 'Great An
SELECT TOP 1000
ROW_NUMBER() OVER(ORDER BY Gold badges DESC) AS [#],
UserId AS [User Link],
COUNT(*) AS "Gold badges"
FROM Badges, Users
WHERE Name IN ('Copy Editor', 'Electorate', 'Famous Question', 'Fanatic', 'Great Answer', 'Great Question', 'Legendary', 'Marshal', 'Populist', 'Publicist', 'Reversal', 'Stellar Question', 'Steward', 'Unsung Hero')
AND LOWER(Location) LIKE '%sri lanka%' AND Users.Id = Badges.UserId
GROUP BY UserId
ORDER BY COUNT(*) DESC
我需要做的是让所有国家的金牌获得者都有金牌数量名称和行号。但我得到了这个错误
关键字“DESC”附近的语法不正确
如果有人能帮忙,那就太好了。我想你想要这样的东西:
SELECT TOP 1000
ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) AS [#],
u.id AS User_Link,
COUNT(*) AS Gold_badges
FROM Badges b JOIN
Users u
ON u.Id = b.UserId
WHERE ?.Name IN ('Copy Editor', 'Electorate', 'Famous Question', 'Fanatic', 'Great Answer', 'Great Question', 'Legendary', 'Marshal', 'Populist', 'Publicist', 'Reversal', 'Stellar Question', 'Steward', 'Unsung Hero'
) AND
LOWER(?.Location) LIKE '%sri lanka%' AND
GROUP BY u.id
ORDER BY COUNT(*) DESC;
注:
用于标识列来源的表别名?
- 切勿在
子句中使用逗号FROM
- 这修复了连接语法,以使用正确、明确、标准的连接
- 不能在同一个
中的任何其他位置使用表别名。所以,重复这个表达式SELECT
- 我想你想要这样的东西:
SELECT TOP 1000
ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) AS [#],
u.id AS User_Link,
COUNT(*) AS Gold_badges
FROM Badges b JOIN
Users u
ON u.Id = b.UserId
WHERE ?.Name IN ('Copy Editor', 'Electorate', 'Famous Question', 'Fanatic', 'Great Answer', 'Great Question', 'Legendary', 'Marshal', 'Populist', 'Publicist', 'Reversal', 'Stellar Question', 'Steward', 'Unsung Hero'
) AND
LOWER(?.Location) LIKE '%sri lanka%' AND
GROUP BY u.id
ORDER BY COUNT(*) DESC;
注:
用于标识列来源的表别名?
- 切勿在
子句中使用逗号FROM
- 这修复了连接语法,以使用正确、明确、标准的连接
- 不能在同一个
中的任何其他位置使用表别名。所以,重复这个表达式SELECT
b
用于徽章
和u
用于用户
。抱歉,兄弟会非常感谢所有的知识。但不幸的是,我得到了这个错误“附近的语法不正确”?“@vimuth。正如回答中所解释的,您需要将其替换为列来源表的别名,b
用于徽章
和u
用于用户
。很抱歉,bro会这样做