homework, pet project DE Dmitry_Medvedev #1
@@ -13,7 +13,7 @@ ORDER BY days_since_registration DESC;
|
||||
-- 2 Задача
|
||||
SELECT name,
|
||||
LOWER(email) AS email_clean,
|
||||
SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
|
||||
SUBSTRING(LOWER(email) FROM POSITION('@' IN LOWER(email)) + 1) AS domain
|
||||
FROM users
|
||||
WHERE email IS NOT NULL
|
||||
ORDER BY domain, name;
|
||||
@@ -30,6 +30,7 @@ SELECT name,
|
||||
WHEN age < 25 THEN 'young'
|
||||
WHEN age BETWEEN 25 AND 35 THEN 'adult'
|
||||
WHEN age > 35 THEN 'senior'
|
||||
ELSE 'unknown'
|
||||
END AS age_group
|
||||
FROM users
|
||||
ORDER BY age;
|
||||
@@ -70,17 +71,17 @@ FROM users;
|
||||
SELECT name,
|
||||
CURRENT_DATE - created_at::date AS days_since_registration,
|
||||
CASE
|
||||
WHEN created_at >= CURRENT_DATE - INTERVAL '30 days' THEN 'new'
|
||||
WHEN created_at < CURRENT_DATE - INTERVAL '30 days'
|
||||
AND created_at > CURRENT_DATE - INTERVAL '180 days' THEN 'middle'
|
||||
WHEN created_at < CURRENT_DATE - INTERVAL '180 days' THEN 'old'
|
||||
WHEN created_at::date >= CURRENT_DATE - INTERVAL '30 days' THEN 'new'
|
||||
WHEN created_at::date < CURRENT_DATE - INTERVAL '30 days'
|
||||
AND created_at::date > CURRENT_DATE - INTERVAL '180 days' THEN 'middle'
|
||||
ELSE 'old'
|
||||
END AS tenure_group,
|
||||
is_active
|
||||
FROM users
|
||||
ORDER BY created_at >= CURRENT_DATE - INTERVAL '30 days',
|
||||
created_at < CURRENT_DATE - INTERVAL '30 days'
|
||||
AND created_at > CURRENT_DATE - INTERVAL '180 days',
|
||||
created_at < CURRENT_DATE - INTERVAL '180 days',
|
||||
ORDER BY created_at::date >= CURRENT_DATE - INTERVAL '30 days',
|
||||
created_at::date < CURRENT_DATE - INTERVAL '30 days'
|
||||
AND created_at::date > CURRENT_DATE - INTERVAL '180 days',
|
||||
created_at::date < CURRENT_DATE - INTERVAL '180 days',
|
||||
days_since_registration;
|
||||
-- Ответ на вопросы
|
||||
-- 1. В сегментации по возрасту показывает возраст пользователя,
|
||||
|
||||
Reference in New Issue
Block a user