-1

以下の表は、約 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を初めて使用します。あなたからの助けは非常に役に立ちます...

4

2 に答える 2

0

これは次のことを行う必要があります。

SELECT name,
   (SELECT count(*) FROM mytable t WHERE t.name = name) AS count1,
   age
FROM mytable
于 2013-01-19T06:57:07.227 に答える
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;

このSQLFiddleを参照してください

于 2013-01-19T07:27:27.763 に答える