在SQL中使用Count函数时'No Column Name'

时间:2018-11-07 00:47:20

标签: sql sql-server

我正在尝试通过此查询显示所有区域的区域ID,区域名称和该区域中的商店数量

SELECT r.regionid, r.regionname, COUNT(*),
FROM region r, store s
WHERE r.regionid = s.regionid
GROUP BY r.regionid, r.regionname;

count列显示“((无列名)”),我不知道如何解决该问题

2 个答案:

答案 0 :(得分:6)

请不要使用Implicit Join,而要使用explicit join。您可以了解更多有关为什么不能在Bad habits to kick : using old-style JOINs

中使用的信息
SELECT 
   reg.regionid, 
   reg.regionname, 
   COUNT(*) as regionCount
FROM 
   region reg 
   Inner Join store st on reg.regionid = st.regionid
GROUP BY 
   reg.regionid, 
   reg.regionname; 

我建议不要使用别名表,例如rs,为什么不对reg使用region而对{{1}使用st } ..当您使复杂的查询变得可读时,它将帮助您。

对于您的store来说很清楚。您只需要命名error列即可。

答案 1 :(得分:0)

您需要给count列起一个别名。例如,将其命名为“ regionCount”,请使用以下代码:

SELECT r.regionid, r.regionname, COUNT(*) as [regionCount],
FROM region r
INNER JOIN store s
    ON r.regionid = s.regionid
GROUP BY r.regionid, r.regionname;