11

ここには、似ているように聞こえますがそうではない他の質問があります。group byを含む一連の行を返すクエリがあり、グループの作成に使用された合計行ではなく、groupby行の合計に制限を適用したいと思います。

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すでに私の限界を使い果たした行によるグループ

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

^^^^ここに私が欲しいものがあります、グループに適用される制限

ここでサブクエリか何かできることがあるはずですが、私はそれを理解していません。

ありがとう。

4

3 に答える 3

7

これは私のために働きます:

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はGROUPBYの後に適用されるはずなので、問題がわかりません。

于 2012-06-16T00:25:23.953 に答える
3
SELECT * FROM (
  SELECT id, color, size, type FROM clothes WHERE size = 'large' GROUP BY type 
) AS baseview LIMIT 0, 25
于 2012-06-15T22:33:14.403 に答える
0

いくつあるかを数えるのはどうですか?

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

私はSQLプログラミングに不慣れですが、これは次のように返されるはずです。そうすれば、色/サイズ/タイプの組み合わせごとに1行を使用し、その後の数量カウントを取得できます。

赤い大きなシャツ4

緑の大きなシャツ6

グリーンラージパンツ2

等々...

于 2012-06-15T22:34:36.240 に答える