0

次の形式でデータを返すクエリがあります。

id | name | number
 1   John    12545
 1   John    50496
 2   Mary    23443
 3   Mark    54
 3   Mark    5600
 3   Mark    50206

ids結果セットに表示される個別の数を調べたいと思います。たとえば、上記の結果の場合。値3を取得したいと思います。

代わりに結果が次のようになるように列を追加する方法はありますか?

count | id | name | number
 3      1   John    12545
 3      1   John    50496
 3      2   Mary    23443
 3      3   Mark    54
 3      3   Mark    5600
 3      3   Mark    50206

私の質問は:

 SELECT * FROM (
    SELECT id FROM tableA
    WHERE xyz
 ) as t1
 JOIN tableB using (id)
4

4 に答える 4

4
SELECT (SELECT COUNT(DISTINCT id) FROM tableName) totalCount,
       id,name,number
FROM tableName

またはを使用してCROSS JOIN

SELECT x.totalCount,
       a.id, a.name, a.number
FROM tableName a, (SELECT COUNT(DISTINCT id) totalCount 
                   FROM tableName) x
于 2012-10-23T13:38:33.740 に答える
0

試してみてください :

SELECT id,name,number, (SELECT COUNT(DISTINCT name) FROM YourTableName) FROM YourTableName

幸運を

于 2012-10-23T13:40:06.370 に答える
0

SELECT COUNT(DISTINCT id)columnを使用するよりも高速ですname

SELECT (SELECT COUNT(DISTINCT id) FROM tableName) as 'count',
        id,name,number  
FROM tableName
于 2012-10-23T13:40:14.857 に答える
0
SELECT COUNT(id) AS count , id, name, number 
FROM 
( 
    SELECT id 
    FROM tableA 
    WHERE xyz 
) as t1 
JOIN tableB using (id)
GROUP BY id, name, number 
于 2012-10-23T13:44:02.157 に答える