将下表视为具有大约1,00,000条记录的多个表的复杂嵌套查询的输出,我将此查询用作子查询,并在我的主查询中将其命名为People
NAME Age
Dave 30
Susan 32
Susan 27
Amy 22
Amy 23
Amy 20
我希望上表的输出为
NAME Count1 Age
Dave 1 30
Susan 2 32
Susan 2 27
Amy 3 22
Amy 3 23
Amy 3 20
使用我的查询SELECT Name, COUNT(Name) AS Count1 FROM People group by Name
我得到输出:
NAME Count1
Dave 3
Susan 3
Amy 3
所以上面的查询必须修改... People
是一个巨大的子查询,我不想在我的主SQL查询中多次使用它...
我是SQL的新手,你的任何帮助都会非常有帮助......
答案 0 :(得分:0)
这应该做:
SELECT name,
(SELECT count(*) FROM mytable t WHERE t.name = name) AS count1,
age
FROM mytable
答案 1 :(得分:0)
您可以像这样加入同一个表:
SELECT P.name, counts, age FROM People P
JOIN (SELECT Name, COUNT(NAME) AS COUNTS FROM People GROUP BY NAME) P1
ON P.Name = P1.Name;