SQL возрастная группа и уникальный номер - PullRequest
0 голосов
/ 15 мая 2019

Как мне написать скрипт, используя временную таблицу со следующими полями: NAME, SURNAME, AGE, OS_NAME.Из результата временной таблицы удалите всех клиентов, чей возраст составляет менее 15 лет.В результате отобразите ОС телефона и количество людей, у которых установлена ​​эта ОС.

имя таблицы - "AGE_GROUPS"

+-----------------------------------+
|NAME   | SURNAME  |AGE |OS_NAME    |
+-----------------------------------+
|Ivan   | Dulin    | 14 | Android8.1|
|-----------------------------------|
|Sasha  | Hlo      | 13 | WP        |
|-----------------------------------|
|Andrey | Zac      | 16 | IOS       |
|-----------------------------------|
|Carld  | Marks    | 17 |WP         |
|-----------------------------------|
|Dan    | Smiz     | 15 | IOS       |
|-----------------------------------|
|Ivan   | Meisa    | 12 | Android8.1|
|-----------------------------------|
|Pasha  | Las      | 4  | IOS       |
|-----------------------------------|
|Stas   | Istomin  | 25 | Android8.1|
|-----------------------------------|
|Chuan  | Zen      | 55 | WP        |
|-----------------------------------|
|Marina | Buzinovna|30  |IOS        |
+-----------------------------------+

Я не могу понять, что произойдет после SELECTдля NAME, SURNAME, AGE, OS_NAME, где age> = 15, нет времени изучать "group by", мой босс плохо ругает меня: (

Ответы [ 2 ]

3 голосов
/ 15 мая 2019

для первого вы можете использовать случай, когда .. и группировать по

select  case when  age between  1 and 12 then '1-12 children' 
             when  age between  13 and 18 then '13-18 - adolescents' 
             when  age between  19 and 23 then '19-23 - students' 
             when  age between  24 and 50 then '24-50 - adults'    
             else   '51+ - pensioners'   
        end   Group_by_age ,
        count(*)
from  my_table  
group by  Group_by_ag 
0 голосов
/ 15 мая 2019

Вопрос очень отличается от исходного вопроса, но если вы хотите «показать ОС телефона и количество людей, которые имеют эту ОС», тогда

drop table if exists t;
create table t
(NAME varchar(20), SURNAME varchar(20),AGE int,OS_NAME varchar(20));
insert into t values
('Ivan'  , 'Dulin'  ,14 , 'Android8.1'),
('Sasha' , 'Hlo'    ,13 , 'WP'),
('Andrey' , 'Zac'   ,16 , 'IOS'),
('Carld' , 'Marks'  ,17 , 'WP'),
('Dan' , 'Smiz'     ,15 , 'IOS'),
('Ivan' , 'Meisa'   ,12 , 'Android8.1'),
('Pasha' , 'Las'    ,4  , 'IOS'),
('Stas' , 'Istomin' ,25 , 'Android8.1'),
('Chuan' , 'Zen'    ,55 , 'WP'),
('Marina' , 'Buzinovna',  30 ,'IOS');

select os_name, count(*)
from t
where age > 15
group by os_name;

+------------+----------+
| os_name    | count(*) |
+------------+----------+
| Android8.1 |        1 |
| IOS        |        2 |
| WP         |        2 |
+------------+----------+
3 rows in set (0.00 sec)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...