2011-06-23 11 views
2

私は次のクエリ書かれている:SQLで行数とともに行を取得するにはどうすればよいですか?

select 
    *, 
    count(pk_id) as row_count 
from employee 
group by 
    pk_id 

をしかし、私はすべての列のためのROW_COUNT値として1を取得しておりません。 クエリの結果として返される行の総数はどのようにして取得できますか? 助けてもらえますか?

そしてもう一つは、私はすべてのサブクエリを書きたくないです:(

+0

_rows with row count SQLクエリ_:あなたのクエリが100行を返す場合、結果のどこかに "100"が必要だと言いますか? – Nivas

+0

正確にクエリを返すのですか?ちょうど総行数ですか?または行が増えるにつれ1,2,3を返すようにしますか?あなたの質問は非常に混乱しています。 – Flimzy

+0

SQL ServerとOracleでは、 'SELECT *、COUNT(*)OVER(PARTITION BY NULL)FROM tblUsers'と書くでしょうが、それがMySQLで動作するかどうかはわかりません。 – Magnus

答えて

1

はあなたがどんな年代にそれらを受け取るよう行だけを数えるのいずれかの考えがありますこの結果セットを消費するか、ちょうどFOUND_ROWSを使用していますか?結果セットにの列として表示されるような行数が必要な理由はありますか?

+0

ありがとう、私は同じ問題に直面していた、すなわちLIMIT節で:) –

0

はして試してみてください。

select 
    *, 
    count(*) as row_count 
from employee 
group by 
    pk_id 
+0

ここで、pk_idはテーブルのフィールド名です。しかしカウント(id)とは何ですか? –

+0

idはそのテーブルのプライマリキーであるはずです... pk_idがプライマリキーの場合、各pk_idは一意であるため、各カラムに1を返し、 'GROUP BY'は効果を持ちません。私はクエリを編集しましたが、今すぐ試して、結果を教えてください –

+0

count(*)は各行に対して同じ '1'を返します。 –

関連する問題