0
は、私は次のようなデータを持つ列name
とage
を持つテーブルがあるとし、いくつかの列の集計を取得:グループ行と
name | age
------|-----
harry | 12
adam | 13
eve | 14
jill | 14
John | 16
alice | 19
smith | 33
bill | 43
bob | 66
jones | 78
私が最初に年齢の昇順で行をアレンジしたい(すでにそれから私は、「グループのサイズ」を提供したい )以上行われ、num個の行がない場合は、最後のブロックが3未満とすることができるトップ
name | age
------|-----
harry | 12
adam | 13
eve | 14
------------
jill | 14
John | 16
alice | 19
------------
smith | 33
bill | 43
bob | 66
------------
jones | 78
から始まる3行のブロックでテーブルを分割するので、精神的に3を言います3の倍数。 各ブロックのageカラムのtopとbottomの値が必要です。だから、出力は次のようになります。
min age|max age
-------|-------
12 | 14
14 | 19
33 | 66
78 | 78
ネストされたテーブルを使用した素朴な方法は効率的ではありません。
select
min(T.age),
max(T.age)
from
(select
age
from
users
order by age limit 3 offset 6
) as T
私は、行を選択しないと集計でのみ動作することを好みます。
データベース:MySQLとH2。
あなたはMYSQLはすべてこれを行うにしたいですか、コードでこれをやって検討していますか? – RiggsFolly
これはSQLコード自体で行います。 – Jus12