Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 Тестовое задание SQL помогите  [new]
OffSpring228
Member

Откуда:
Сообщений: 4
Всем привет!
Прошу в помощи с запросом для БД, только начал изучать SQL.

Есть база данных(скриншот задание):

CREATE TABLE IF NOT EXISTS `cert` (
`type` varchar(200) NOT NULL,
`amount` int(4) NOT NULL,
`year` int(4) NOT NULL
) DEFAULT CHARSET=utf8;
INSERT INTO `cert` (`type`, `amount`, `year`) VALUES
('Квалифицированный', '500', '2018'),
('Неквалифицированный', '90', '2018'),
('Квалифицированный', '300', '2019'),
('Неквалифицированный', '250', '2019'),
('Квалифицированный', '600', '2020'),
('Неквалифицированный', '500', '2020');


Написал:

SELECT type, (SELECT amount FROM cert where year=2018 ) as "2018", amount as "2019", amount as "2020"
FROM cert
group by type

SELECT distinct amount
FROM cert
where year=2018

SELECT type, (SELECT max(amount) FROM cert where year=2018) as "2018",
(SELECT max(amount) FROM cert where year=2019) as "2019",
(SELECT max(amount) FROM cert where year=2020) as "2020"
FROM cert
UNION
SELECT type, (SELECT min(amount) FROM cert where year=2018 limit 1) as "2018",
(SELECT min(amount) FROM cert where year=2019 limit 1) as "2019",
(SELECT min(amount) FROM cert where year=2020 limit 1) as "2020"
FROM cert

select *
from(

SELECT type, (SELECT max(amount) FROM cert where year=2018) as "2018",
(SELECT max(amount) FROM cert where year=2019) as "2019",
(SELECT max(amount) FROM cert where year=2020) as "2020"
FROM cert
UNION
SELECT type, (SELECT min(amount) FROM cert where year=2018 limit 1) as "2018",
(SELECT min(amount) FROM cert where year=2019 limit 1) as "2019",
(SELECT min(amount) FROM cert where year=2020 limit 1) as "2020"
FROM cert

) as result

group by type

Но выводит не все необходимые значения.
Можете помочь с написанием запроса?

К сообщению приложен файл. Размер - 14Kb
25 окт 20, 22:39    [22220484]     Ответить | Цитировать Сообщить модератору
 Re: Тестовое задание SQL помогите  [new]
PizzaPizza
Member

Откуда:
Сообщений: 402
не туда смотрите
это задание на знание операции pivot
25 окт 20, 23:02    [22220488]     Ответить | Цитировать Сообщить модератору
 Re: Тестовое задание SQL помогите  [new]
OffSpring228
Member

Откуда:
Сообщений: 4
PizzaPizza,
Как должно быть, можете подсказать?
25 окт 20, 23:32    [22220498]     Ответить | Цитировать Сообщить модератору
 Re: Тестовое задание SQL помогите  [new]
fkthat
Member

Откуда:
Сообщений: 3937
Так это вообще не сиквел, а, похоже, U-SQL. С этим, наверное, в соседний форум лучше.
25 окт 20, 23:34    [22220499]     Ответить | Цитировать Сообщить модератору
 Re: Тестовое задание SQL помогите  [new]
PizzaPizza
Member

Откуда:
Сообщений: 402
Кстати да
limit 1 это может быть MySQL
тогда никакого pivot
25 окт 20, 23:54    [22220506]     Ответить | Цитировать Сообщить модератору
 Re: Тестовое задание SQL помогите  [new]
fkthat
Member

Откуда:
Сообщений: 3937
PizzaPizza
это может быть MySQL

Нет, это стопудово U-SQL - язык для работы с Azure Data Lake.
25 окт 20, 23:56    [22220508]     Ответить | Цитировать Сообщить модератору
 Re: Тестовое задание SQL помогите  [new]
OffSpring228
Member

Откуда:
Сообщений: 4
fkthat,

Это mySQL
26 окт 20, 08:35    [22220536]     Ответить | Цитировать Сообщить модератору
 Re: Тестовое задание SQL помогите  [new]
fkthat
Member

Откуда:
Сообщений: 3937
OffSpring228
fkthat,

Это mySQL

А что оно тогда здесь делает?

Модератор: Тема перенесена из форума "Microsoft SQL Server".


Сообщение было отредактировано: 26 окт 20, 09:44
26 окт 20, 09:14    [22220550]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить