0

スケールに従って集計されるデータベースからデータを選択する必要があります。以下のデータがある場合、列 col2 のデータを col1 の 1 から 3、4 から 6 などの範囲で集計したいと考えています。

col1 |  col2
-----+----
1    |  34
2    |  43
3    |  75
4    |  23
5    |  62
6    |  33
...  |  ...

結果は次のようになります。

| SUM(col2)
+----
  152        - for values from 1 to 3
  118        - for values from 4 to 6
  ...        ...

このデータを返すことができる1つのSQL選択を作成する方法がわかりません。回答ありがとうございます。私の英語で申し訳ありません。

4

1 に答える 1

3
CREATE TABLE t (col1 integer, col2 integer);
INSERT INTO t VALUES (1,34),(2,43),(3,75),(4,23),(5,62),(6,33);

SELECT ceil(col1/3) AS grp, min(col1) AS col1_from,
       max(col1) AS col1_till, sum(col2)
  FROM t
 GROUP BY ceil(col1/3);

SQL Fiddleでも。

于 2012-07-04T19:25:02.737 に答える