You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.5 KiB
44 lines
1.5 KiB
SELECT c.iso, c.full_name, COUNT(*) restaurants
|
|
FROM restaurant r
|
|
INNER JOIN currency c ON c.iso = r.currency
|
|
GROUP BY c.iso
|
|
ORDER BY 3 DESC
|
|
LIMIT 10;
|
|
|
|
SELECT min_price
|
|
FROM restaurant
|
|
WHERE currency = 'EUR'
|
|
ORDER BY min_price
|
|
GROUP BY '[3,7)'::int4range;
|
|
|
|
/*WITH series AS (
|
|
SELECT generate_series(
|
|
(SELECT MIN(min_price) FROM restaurant),
|
|
(SELECT MAX(min_price) FROM restaurant WHERE min_price != 'NaN'::NUMERIC),
|
|
10
|
|
) low_bound_price
|
|
)
|
|
SELECT '[' || s.low_bound_price || ',' || (s.low_bound_price+10) || '[', COUNT(*) restaurants
|
|
FROM series s
|
|
LEFT JOIN restaurant r
|
|
ON r.min_price >= s.low_bound_price
|
|
AND r.min_price < (s.low_bound_price + 10)
|
|
GROUP BY low_bound_price;*/
|
|
|
|
-- COUNT(*) FILTER ?
|
|
SELECT CASE WHEN min_price < 5 THEN '< 5'
|
|
WHEN min_price >= 5 AND min_price < 10 THEN '[5;10['
|
|
WHEN min_price >= 10 AND min_price < 15 THEN '[10;15['
|
|
WHEN min_price >= 15 AND min_price < 20 THEN '[15;20['
|
|
WHEN min_price >= 20 AND min_price < 30 THEN '[20;30['
|
|
WHEN min_price >= 30 AND min_price < 50 THEN '[30;50['
|
|
WHEN min_price >= 50 AND min_price < 100 THEN '[50;100['
|
|
WHEN min_price >= 100 AND min_price < 200 THEN '[100;200['
|
|
WHEN min_price >= 200 AND min_price < 500 THEN '[200;500['
|
|
WHEN min_price >= 500 AND min_price < 1000 THEN '[500;1000['
|
|
WHEN min_price >= 1000 THEN '>= 1000'
|
|
END min_price_range,
|
|
COUNT(*) nb
|
|
FROM restaurant
|
|
GROUP BY min_price_range;
|