Lazzal
Lazzal

Reputation: 77

How to return multiple row counts with conditions?

I have a database named DT with 2 columns.

ID    IMP 

01    365
02    289
03    602
04    745
05    100
06    1
07    231
08    903
09    555
10    400

I would like to return a table like that

NUM_ID_UNDER_300    NUM_ID_BETWEEN_301_AND_600   NUM_ID_ABOVE_601
        4                         3                      3            

Any ideas? Thank you!

Upvotes: 1

Views: 39

Answers (1)

Ilyes
Ilyes

Reputation: 14928

You can do as

SELECT SUM(CASE WHEN IMP <= 300 THEN 1 ELSE 0 END) NUM_ID_UNDER_300,
       SUM(CASE WHEN IMP >= 301 AND IMP <= 600 THEN 1 ELSE 0 END) NUM_ID_BETWEEN_301_AND_600,
       SUM(CASE WHEN IMP >= 601 THEN 1 ELSE 0 END) NUM_ID_ABOVE_601
FROM
(
  VALUES
  (01,    365),
  (02,    289),
  (03,    602),
  (04,    745),
  (05,    100),
  (06,    1),
  (07,    231),
  (08,    903),
  (09,    555),
  (10,    400)
) T(ID, IMP);

Upvotes: 2

Related Questions