0

このようなデータがありますが、

KOD    Voucher
1        10
2         2
3        11
4         5
5        23
6         1
7        23

私はちょうど結果がこのようなものであることを望みます

< 10 = 3
> 10 = 4

SQLでそれを行う方法は?

4

4 に答える 4

3

これを試して:

SELECT
  SUM(CASE WHEN voucher < 10 THEN 1 ELSE 0 END) AS "< 10",
  SUM(CASE WHEN voucher > 10 THEN 1 ELSE 0 END) AS "> 10"
FROM table;

SQL フィドルのデモ

ただし、これにより、次の場合は3つしか得られません> 10

< 10  > 10
3       3

述語を使用して、10 not nor>=の 4 つの値を取得する必要があります。> 10> 10< 10

更新された SQL Fiddle デモ

于 2012-11-29T10:52:16.353 に答える
1
SELECT COUNT(1) AS "< 10"
FROM myTable
WHERE Voucher < 10 

SELECT COUNT(1) AS ">= 10"
FROM myTable
WHERE Voucher >= 10 
于 2012-11-29T10:53:11.260 に答える
0

列形式で

  select case when voucher<10 then '< 10' else '>= 10' end breakdown,
         count(1) total
    from tbl
group by case when voucher<10 then '< 10' else '>= 10' end;

結果:

 breakdown | total
 < 10      | 3
 >= 10     | 4

コラム形式で

  select count(case when voucher<10 then 1 end) [< 10],
         count(case when voucher>=10 then 1 end) [>= 10]
    from tbl;

結果:

 < 10  | >= 10
 3     | 4
于 2012-11-29T10:53:31.413 に答える
0
select '< 10 = '+cast(count(KOD) as Varchar(100)) from t where Voucher<10
union
select '> 10 = '+cast(count(KOD) as Varchar(100)) from t where Voucher>=10

SQLFiddle の例

于 2012-11-29T11:46:07.640 に答える