Подсчёт уникальных значений

stels57
Дата: 03.12.2012 20:29:12
Доброго времени суток!Нужна ваша помощь!
Есть таблица,в которой нужно подсчитать количество строк с именем %Disk и %Marker

PRODUCT_ID NAME PRICE
1 CD-RW Disk 22
2 CD-R Disk 6,5
3 3.5" Floppy Disk 11
4 DVD-R Disk 88
5 DVD+R Disk 88
6 Green Ink Marker 100
7 Blue Ink Marker 66
8 Milk Ink Marker 66


должно получиться типа такого
Disk Marker
5 3
stels57
Дата: 03.12.2012 20:32:43
пробывал так

select count(name) as disk from product
where name like '%Disk';

так находит и считает количество,если добавить в этот запрос ище и '%Marker' то не работает(((
Dimitry Sibiryakov
Дата: 03.12.2012 20:44:52

stels57
если добавить в этот запрос ище и '%Marker' то не работает

Дай угадаю: ты добавляешь его через AND?..

Делай union all.

Posted via ActualForum NNTP Server 1.5

stels57
Дата: 03.12.2012 20:50:51
да,я не знаю как объединить несколько select-ов в 1 запрос

select count(name)as Disk from product
where name like '%Disk'

select count(name) as Marker from product
where name like '%Marker'
SY
Дата: 03.12.2012 20:59:22
Dimitry Sibiryakov
Делай union all.


???

select  count(case when name like '%Disk%' then 1 end) as disk,
        count(case when name like '%Marker%' then 1 end) as marker
  from  product
/


SY.
Sayan Malakshinov
Дата: 03.12.2012 21:00:37
stels57
да,я не знаю как объединить несколько select-ов в 1 запрос

select 
  count(case when name like '%Disk' then 1 end) as Disk 
 ,count(case when name like '%Marker' then 1 end) as Marker
from product

stels57
Дата: 03.12.2012 21:22:02
спасибо за оперативный ответ)))))))
Добрый Э - Эх
Дата: 04.12.2012 04:31:54
stels57
да,я не знаю как объединить несколько select-ов в 1 запрос

select count(name)as Disk from product
where name like '%Disk'

select count(name) as Marker from product
where name like '%Marker'

OR не пробовал?
stels57
Дата: 05.12.2012 21:10:14
а как подсчитать чтоб в результате получить вывод в виде:

Disk 5
Marker 3
Bobby Z.
Дата: 05.12.2012 21:33:33
stels57
а как подсчитать чтоб в результате получить вывод в виде:

Disk 5
Marker 3

SQL> SELECT * FROM (
  2  select
  3    count(case when name like '%Disk' then 1 end) as "Disk"
  4   ,count(case when name like '%Marker' then 1 end) as "Marker"
  5  from product )
  6  UNPIVOT (QTY FOR PRODUCT IN ("Disk", "Marker"))
  7  /
 
PRODUCT        QTY
------- ----------
Disk             5
Marker           3