2012-06-15 12 views
5

他にも同様の音が聞こえますが、そうではありません。グループごとに行の束を返すクエリがあり、グループを作成するために使用された合計行ではなく、行ごとに合計グループに制限を適用したい。私が欲しいものALREADY使い果たしてしまったROWS BYどのようにmysqlクエリの行単位でグループを制限しますか?

ID TYPE  COLOR  SIZE 
---------------------------------------- 
1  Circle  Blue   Large 
2  Circle  Red   Large 
3  Square  Green  Large 
4  Circle  Purple  Large 
5  Circle  Blue   Small 
6  Circle  Yellow  Medium 
7  Circle  Black  Large 
8  Oval  Blue   Large 
9  Circle  Gray   Small 
10 Triangle Black  Large 
11 Star  Green  Large 
12 Triangle Purple  Large 

SELECT size, type FROM clothes WHERE size = 'large' GROUP BY type LIMIT 0, 5 

TYPE  SIZE  ROWS 
---------------------------  
Circle  Large  4 
Square  Large  1 

^^^^ 2 GROUP

TYPE  SIZE  ROWS 
---------------------------  
Circle  Large  4 
Square  Large  1 
Oval  Large  1 
Triangle Large  2 
Star  Large  1 

^^^^ HERE MY LIMITは、グループに適用LIMIT'S

がなければならないいくつかのサブクエリや何か私はここで行うことができますが、私はそれを考え出していません。

ありがとうございました。

+2

あなたがしようとしていることは明確ではありません。あなたのテーブルからいくつかのサンプルデータを見せて、あなたが望む結果を正確に表示できますか?また、例を簡単にするために、制限を25から5に減らすこともできます。 –

+0

本当に本当の質問とデータセットを投稿することはできません。 – Tomas

答えて

4

これは私の作品:

SELECT type, size, COUNT(*) AS rows 
FROM clothes 
WHERE size = 'large' 
GROUP BY type 
LIMIT 0, 5 

結果:

type  size rows 
------------------------ 
Circle Large  4 
Oval  Large  1 
Square Large  1 
Star  Large  1 
Triangle Large  2 

LIMITはGROUP BYの後に適用する必要があるため、この問題はわかりません。

+0

はい、これは実際に動作します。私の本当の質問で私の問題は、私は別の行にそれを分解していたことを意味する複数のものでグループ化していたということです。 – Tomas

3
SELECT * FROM (
    SELECT id, color, size, type FROM clothes WHERE size = 'large' GROUP BY type 
) AS baseview LIMIT 0, 25 
0

どのくらいの数があるのですか?

select color, size, type, count(id) from clothes where size = 'large' group by size, type, color; 

私はプログラミングのSQLへの新たなんだが、これは、あなたがそれぞれの色/サイズ/タイプの組み合わせのために1行を使用してその方法を以下のように返し、それの後に数量のカウントを取得する必要があります。

レッド大シャツ4

グリーン大シャツ6つの

グリーン大きなパンツ2

のように...

関連する問題