0

結果セットとともに 1 つの列の一意のカウントが必要です。たとえば、結果セットがこのような場合

              ID      Name
               2       A
               2       B
               4       C
               5       D
               1       A
               1       B

私はデータベースから次のように返したい:

             Count  ID   Name
              4      2    A
              4      2    B
              4      4    C
              4      5    D
              4      1    A
              4      1    B

4 が明確にわかるのは、ID 列の一意のカウントです。

4

2 に答える 2

1

MySQL と SQL Server の両方で、次のような相関サブクエリでこれを行うことができます。

SELECT
  (SELECT COUNT(DISTINCT Name)
   FROM tablename) AS 'Count',
  ID,
  Name
FROM tablename;

MySQL フィドル デモ.

SQL Server フィドル デモ.

于 2013-02-14T06:51:14.603 に答える
1

これは、ほとんどすべての RDBMS で機能します。

SELECT  b.totalCount, a.ID, a.name 
FROM    tableName a 
        CROSS JOIN 
        (SELECT COUNT(DISTINCT Name) totalCount 
         FROM tableName) b
于 2013-02-14T06:51:19.440 に答える