COALESCE and GROUP BY and AGGREGATES

Поиск
Список
Период
Сортировка
От Erik Jones
Тема COALESCE and GROUP BY and AGGREGATES
Дата
Msg-id 4558A232.6050801@myemma.com
обсуждение исходный текст
Ответы Re: COALESCE and GROUP BY and AGGREGATES
Список pgsql-sql
Ok, here's a sample table for the question I have:

CREATE TABLE sales_table (
sale_type varchar default 'setup' not null,
sale_amount numeric not null
sale_date timestamp without timezone default now());

So, let's say there are 3 different sale_types: 'setup', 'layaway', 
'the_hookup' and I want to get totals for each type in a given month:

SELECT sale_type, SUM(sale_amount)
FROM sales_table
WHERE sale_date LIKE '2006-11%'
GROUP BY sale_type;

If there hasn't been a sale of a given type in that month there won't be 
a row in the result set for that type.  I want a row for each type with 
a default of 0 if there haven't been any sales for that type yet that 
month.  I've tried:

SELECT sale_type, (COALESCE(SUM(sale_amount), 0)
FROM sales_table
WHERE sale_date LIKE '2006-11%'
GROUP BY sale_type;

but, no dice.  Any ideas?  I know I can break this out into separate 
queries for each type and the COALESCE will work, but in my real-world 
situation I have a lot more than three types and that'd be ugly.

Thanks,

-- 
erik jones <erik@myemma.com>
software development
emma(r)



В списке pgsql-sql по дате отправления:

Предыдущее
От: Michael Fuhr
Дата:
Сообщение: Re: max (timestamp,timestamp)
Следующее
От: Volkan YAZICI
Дата:
Сообщение: Re: COALESCE and GROUP BY and AGGREGATES