├── LICENSE ├── README.md ├── art ├── hackerrank.png └── sql.png └── tasks ├── 1.md ├── 1.sql ├── 10.md ├── 10.sql ├── 11.md ├── 11.sql ├── 12.md ├── 12.sql ├── 13.md ├── 13.sql ├── 14.md ├── 14.sql ├── 15.md ├── 15.sql ├── 16.md ├── 16.sql ├── 17.md ├── 17.sql ├── 18.md ├── 18.sql ├── 19.md ├── 19.sql ├── 2.md ├── 2.sql ├── 20.md ├── 20.sql ├── 21.md ├── 21.sql ├── 22.md ├── 22.sql ├── 23.md ├── 23.sql ├── 24.md ├── 24.sql ├── 25.md ├── 25.sql ├── 26.md ├── 26.sql ├── 27.md ├── 27.sql ├── 28.md ├── 28.sql ├── 29.md ├── 29.sql ├── 3.md ├── 3.sql ├── 30.md ├── 30.sql ├── 31.md ├── 31.sql ├── 32.md ├── 32.sql ├── 33.md ├── 33.sql ├── 34.md ├── 34.sql ├── 35.md ├── 35.sql ├── 36.md ├── 36.sql ├── 37.md ├── 37.sql ├── 38.md ├── 38.sql ├── 39.md ├── 39.sql ├── 4.md ├── 4.sql ├── 40.md ├── 40.sql ├── 41.md ├── 41.sql ├── 42.md ├── 42.sql ├── 43.md ├── 43.sql ├── 44.md ├── 44.sql ├── 45.md ├── 45.sql ├── 46.md ├── 46.sql ├── 47.md ├── 47.sql ├── 48.md ├── 48.sql ├── 49.md ├── 49.sql ├── 5.md ├── 5.sql ├── 50.md ├── 50.sql ├── 51.md ├── 51.sql ├── 52.md ├── 52.sql ├── 53.md ├── 53.sql ├── 54.md ├── 54.sql ├── 55.md ├── 55.sql ├── 56.md ├── 56.sql ├── 57.md ├── 57.sql ├── 58.md ├── 58.sql ├── 59.md ├── 6.md ├── 6.sql ├── 7.md ├── 7.sql ├── 8.md ├── 8.sql ├── 9.md ├── 9.sql └── art ├── 1.png ├── 10.png ├── 11.png ├── 12.png ├── 13.png ├── 14.png ├── 15.png ├── 16.png ├── 17.png ├── 18.png ├── 19.png ├── 2.png ├── 20.png ├── 21.png ├── 22.png ├── 23.png ├── 24.png ├── 25.png ├── 26.png ├── 27.png ├── 28.png ├── 29.png ├── 3.png ├── 30.png ├── 31.png ├── 32.png ├── 33.png ├── 34.png ├── 35.png ├── 36.png ├── 37.png ├── 38.png ├── 39.png ├── 4.png ├── 40.png ├── 41.png ├── 42.png ├── 44.png ├── 45.png ├── 46.png ├── 47.png ├── 48.png ├── 49.png ├── 5.png ├── 50.png ├── 51.png ├── 52.png ├── 53.png ├── 54.png ├── 55.png ├── 56.png ├── 57.png ├── 58.png ├── 6.png ├── 7.png ├── 8.png └── 9.png /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Andrej Marinchenko 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | logo 5 | 6 | # Решение задач hackerrank по SQL 7 | 8 |
9 | 10 | ## Как это работает? 11 | 12 | Все очень просто: переходи по [ссылке](https://www.hackerrank.com/domains/sql?filters%5Bstatus%5D%5B%5D=unsolved&badge_type=sql) 13 | профильных задач hackerrank и учись, а если уже все идеи при решении закончились, обращайся к моим подсказкам. 14 | 15 | ## Порядок подготовки и работы с ботом 16 | 17 | 1. Клонировать репозиторий либо скачать архив из github или при помощи следующих команд в командной строке 18 | ```commandline 19 | $ cmd 20 | $ git clone https://github.com/BEPb/hackerrank_sql 21 | $ cd hackerrank_sql 22 | ``` 23 | 24 | 2. Приступить к решеиню задач: 25 | ## Содержание 26 | 27 | 1. Пересмотр выбора запроса I - [Revising the Select Query I](./tasks/1.md) 28 | 2. Пересмотр выбора запроса II - [Revising the Select Query II](./tasks/2.md) 29 | 3. Выбрать все - [Select All](./tasks/3.md) 30 | 4. Выбрать по идентификатору - [Select By ID](./tasks/4.md) 31 | 5. Атрибуты японских городов - [Japanese Cities' Attributes](./tasks/5.md) 32 | 6. Названия японских городов - [Japanese Cities' Names](./tasks/6.md) 33 | 7. Станция наблюдения за погодой 1 - [Weather Observation Station 1](./tasks/7.md) 34 | 8. Станция наблюдения за погодой 3 - [Weather Observation Station 3](./tasks/8.md) 35 | 9. Станция наблюдения за погодой 4 - [Weather Observation Station 4](./tasks/9.md) 36 | 10. Станция наблюдения за погодой 5 - [Weather Observation Station 5](./tasks/10.md) 37 | 11. Станция наблюдения за погодой 6 - [Weather Observation Station 6](./tasks/11.md) 38 | 12. Станция наблюдения за погодой 7 - [Weather Observation Station 7](./tasks/12.md) 39 | 13. Станция наблюдения за погодой 8 - [Weather Observation Station 8](./tasks/13.md) 40 | 14. Станция наблюдения за погодой 9 - [Weather Observation Station 9](./tasks/14.md) 41 | 15. Станция наблюдения за погодой 10 - [Weather Observation Station 10](./tasks/15.md) 42 | 16. Станция наблюдения за погодой 11 - [Weather Observation Station 11](./tasks/16.md) 43 | 17. Станция наблюдения за погодой 12 - [Weather Observation Station 12](./tasks/17.md) 44 | 18. Выше 75 баллов - [Higher Than 75 Marks](./tasks/18.md) 45 | 19. Имена сотрудников - [Employee Names](./tasks/19.md) 46 | 20. Заработная плата сотрудников - [Employee Salaries](./tasks/20.md) 47 | 21. Тип треугольника - [Type of Triangle](./tasks/21.md) 48 | 22. ПОДУШКИ - [The PADS](./tasks/22.md) 49 | 23. Профессии - [Occupations](./tasks/23.md) 50 | 24. Узлы бинарного дерева - [Binary Tree Nodes](./tasks/24.md) 51 | 25. Новые компании - [New Companies](./tasks/25.md) 52 | 26. Средняя численность населения - [Average Population](./tasks/26.md) 53 | 27. Население Японии - [Japan Population](./tasks/27.md) 54 | 28. Разница в плотности населения - [Population Density Difference](./tasks/28.md) 55 | 29. Ошибка - [The Blunder](./tasks/29.md) 56 | 30. Лучшие заработки - [Top Earners](./tasks/30.md) 57 | 31. Проверка агрегатов — функция подсчета - [Revising Aggregations - The Count Function](./tasks/31.md) 58 | 32. Проверка агрегатов — функция суммы - [Revising Aggregations - The Sum Function](./tasks/32.md) 59 | 33. Проверка агрегатов — функция среднего значения - [Revising Aggregations - Averages](./tasks/33.md) 60 | 34. Станция наблюдения за погодой 2 - [Weather Observation Station 2](./tasks/34.md) 61 | 35. Станция наблюдения за погодой 13 - [Weather Observation Station 13](./tasks/35.md) 62 | 36. Станция наблюдения за погодой 14 - [Weather Observation Station 14](./tasks/36.md) 63 | 37. Станция наблюдения за погодой 15 - [Weather Observation Station 15](./tasks/37.md) 64 | 38. Станция наблюдения за погодой 16 - [Weather Observation Station 16](./tasks/38.md) 65 | 39. Станция наблюдения за погодой 17 - [Weather Observation Station 17](./tasks/39.md) 66 | 40. Станция наблюдения за погодой 18 - [Weather Observation Station 18](./tasks/40.md) 67 | 41. Станция наблюдения за погодой 19 - [Weather Observation Station 19](./tasks/41.md) 68 | 42. Станция наблюдения за погодой 20 - [Weather Observation Station 20](./tasks/42.md) 69 | 43. Таблица лидеров конкурса - [Contest Leaderboard](./tasks/43.md) 70 | 44. Интервью - [Interviews](./tasks/44.md) 71 | 45. Базовое соединение - [Basic Join](./tasks/45.md) 72 | 46. Перепись населения - [Population Census](./tasks/46.md) 73 | 47. Африканские города - [African Cities](./tasks/47.md) 74 | 48. Средняя численность населения каждого континента - [Average Population of Each Continent](./tasks/48.md) 75 | 49. Отчет - [The Report](./tasks/49.md) 76 | 50. Лучшие конкуренты - [Top Competitors](./tasks/50.md) 77 | 51. Инвентарь Олливандера - [Ollivander's Inventory](./tasks/51.md) 78 | 52. Проблемы - [Challenges](./tasks/52.md) 79 | 53. Нарисуй треугольник 1 - [Draw The Triangle 1](./tasks/53.md) 80 | 54. Нарисуй треугольник 2 - [Draw The Triangle 2](./tasks/54.md) 81 | 55. Печать простых чисел - [Print Prime Numbers](./tasks/55.md) 82 | 56. 15 дней изучения SQL - [15 Days of Learning SQL](./tasks/56.md) 83 | 57. Планирование проекта SQL - [SQL Project Planning](./tasks/57.md) 84 | 58. Места размещения - [Placements](./tasks/58.md) 85 | 59. Симметричные пары - [Symmetric Pairs](./tasks/59.md) 86 | 87 | 88 | ## В процессе... , будет дополнено) 89 | 90 | 91 | --- 92 | 93 | 94 | 95 | 96 | 97 | 98 | Цель этого репозитория, помочь начинающему программисту получить знания, ну и как награду бейдж hackerrank sql 99 | sertificate 100 | -------------------------------------------------------------------------------- /art/hackerrank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/art/hackerrank.png -------------------------------------------------------------------------------- /art/sql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/art/sql.png -------------------------------------------------------------------------------- /tasks/1.md: -------------------------------------------------------------------------------- 1 | ### Пересмотр выбора запроса I [Revising the Select Query I] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query all columns for all American cities in the CITY table with populations larger than 100000. The CountryCode for America is USA. 7 | The CITY table is described as follows: 8 | 9 | 10 | #### рус: 11 | Запросите все столбцы для всех американских городов в таблице CITY с населением более 100000 человек. CountryCode для Америки — USA. 12 | Таблица CITY описывается следующим образом: 13 | 14 | 15 | #### код с пояснениями: 16 | ```sql 17 | SELECT /* выбрать данные */ 18 | * /* всех столбцов */ 19 | FROM /* из */ 20 | CITY /* таблицы */ 21 | WHERE /* где */ 22 | POPULATION > 100000 AND /* условие 1 и */ 23 | COUNTRYCODE = 'USA' /* условие 2 */ 24 | ``` 25 | 26 | #### код для hackerrank 27 | ```sql 28 | SELECT * 29 | FROM CITY 30 | WHERE POPULATION > 100000 AND COUNTRYCODE = 'USA' 31 | ``` 32 | 33 | 34 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 35 | 36 | --- -------------------------------------------------------------------------------- /tasks/1.sql: -------------------------------------------------------------------------------- 1 | SELECT * 2 | FROM CITY 3 | WHERE POPULATION > 100000 AND COUNTRYCODE = 'USA' -------------------------------------------------------------------------------- /tasks/10.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 5 [Weather Observation Station 5] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the two cities in STATION with the shortest and longest CITY names, as well as their respective lengths 7 | (i.e.: number of characters in the name). If there is more than one smallest or largest city, choose the one that 8 | comes first when ordered alphabetically. 9 | The STATION table is described as follows: 10 | 11 | where LAT_N is the northern latitude and LONG_W is the western longitude. 12 | 13 | Sample Input 14 | 15 | For example, CITY has four entries: DEF, ABC, PQRS and WXY. 16 | 17 | Explanation 18 | When ordered alphabetically, the CITY names are listed as ABC, DEF, PQRS, and WXY, with lengths and . The longest name 19 | is PQRS, but there are options for shortest named city. Choose ABC, because it comes first alphabetically. 20 | 21 | Note 22 | You can write two separate queries to get the desired output. It need not be a single query. 23 | 24 | #### рус: 25 | Запросите два города в STATION с самыми короткими и самыми длинными названиями CITY, а также их соответствующей длиной 26 | (т.е. количеством символов в названии). Если существует более одного самого маленького или самого большого города, 27 | выберите тот, который идет первым в алфавитном порядке. 28 | Таблица STATION описывается следующим образом: 29 | 30 | где LAT_N — северная широта, а LONG_W — западная долгота. 31 | 32 | Образец ввода 33 | Например, CITY имеет четыре записи: DEF, ABC, PQRS и WXY. 34 | 35 | Объяснение 36 | При упорядочении в алфавитном порядке названия ГОРОДА перечислены как ABC, DEF, PQRS и WXY с длинами и. Самое длинное 37 | название — PQRS, но есть варианты для города с самым коротким названием. Выберите ABC, потому что он стоит первым в 38 | алфавитном порядке. 39 | 40 | Запись 41 | Вы можете написать два отдельных запроса, чтобы получить желаемый результат. Это не обязательно должен быть один запрос. 42 | 43 | #### код с коментариями: 44 | ```sql 45 | SELECT /* выбрать данные */ 46 | city, /* столбец */ 47 | LENGTH(city) AS city_length /* столбец длины с названием */ 48 | FROM STATION /* из таблицы */ 49 | WHERE LENGTH(city) = (SELECT /* где условие1 = встроенному запросу выбора данных */ 50 | MIN(LENGTH(city)) /* столбец минимальной длинны названий городов */ 51 | FROM STATION) /* из таблицы */ 52 | OR /* или */ 53 | LENGTH(city) = (SELECT /* условие 2 = встроенному запросу выбора данныех*/ 54 | MAX(LENGTH(city)) /* столбец максимальной длинны названий городов */ 55 | FROM STATION) /* из таблицы */ 56 | ORDER BY /* отсортировать */ 57 | length(city)desc, /* по длинне названий в обратном порядке */ 58 | city ASC /* затем по названию городов кодировки аски */ 59 | limit 2; /* не более 2 строк */ 60 | ``` 61 | 62 | #### код для hackerrank: 63 | ```sql 64 | SELECT 65 | city, 66 | LENGTH(city) AS city_length 67 | FROM STATION 68 | WHERE LENGTH(city) = (SELECT 69 | MIN(LENGTH(city)) 70 | FROM STATION) 71 | or LENGTH(city) = (SELECT 72 | MAX(LENGTH(city)) 73 | FROM STATION) 74 | ORDER BY length(city)desc,city ASC 75 | limit 2; 76 | ``` 77 | 78 | 79 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 80 | 81 | --- -------------------------------------------------------------------------------- /tasks/10.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | city, 3 | LENGTH(city) AS city_length 4 | FROM STATION 5 | WHERE LENGTH(city) = (SELECT 6 | MIN(LENGTH(city)) 7 | FROM STATION) 8 | OR 9 | LENGTH(city) = (SELECT 10 | MAX(LENGTH(city)) 11 | FROM STATION) 12 | ORDER BY 13 | length(city)desc, 14 | city ASC 15 | limit 2; -------------------------------------------------------------------------------- /tasks/11.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 6 [Weather Observation Station 6] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the list of CITY names starting with vowels (i.e., a, e, i, o, or u) from STATION. Your result cannot contain duplicates. 7 | Input Format 8 | The STATION table is described as follows: 9 | where LAT_N is the northern latitude and LONG_W is the western longitude. 10 | 11 | 12 | #### рус: 13 | Запросите список названий ГОРОДА, начинающихся с гласных (например, a, e, i, o или u), из STATION. Ваш результат не 14 | может содержать дубликатов. 15 | Формат ввода 16 | Таблица STATION описывается следующим образом: 17 | где LAT_N — северная широта, а LONG_W — западная долгота. 18 | 19 | 20 | #### код с коментариями: 21 | ```sql 22 | SELECT /* выбрать данные */ 23 | CITY /* столбца */ 24 | FROM STATION /* из таблицы */ 25 | WHERE /* где */ 26 | CITY LIKE 'a%' or /* значение столбца содержит симовл или */ 27 | CITY LIKE 'e%' or /* значение столбца содержит симовл или */ 28 | CITY LIKE 'i%' or /* значение столбца содержит симовл или */ 29 | CITY LIKE 'o%' or /* значение столбца содержит симовл или */ 30 | CITY LIKE 'u%' /* значение столбца содержит симовл или */ 31 | GROUP BY CITY; /* сгруппировать по столбцу */ 32 | ``` 33 | 34 | #### код для hackerrank: 35 | ```sql 36 | SELECT 37 | CITY 38 | FROM STATION 39 | WHERE 40 | CITY LIKE 'a%' or 41 | CITY LIKE 'e%' or 42 | CITY LIKE 'i%' or 43 | CITY LIKE 'o%' or 44 | CITY LIKE 'u%' 45 | GROUP BY CITY; 46 | ``` 47 | или: 48 | 49 | ```sql 50 | SELECT 51 | DISTINCT CITY 52 | FROM STATION 53 | WHERE 54 | CITY REGEXP '^a|^e|^i|^o|^u'; 55 | 56 | ``` 57 | 58 | #### этот код с коментариями: 59 | ```sql 60 | SELECT /* выбрать данные */ 61 | DISTINCT CITY /* уникальные значения столбца */ 62 | FROM STATION /* из таблицы */ 63 | WHERE /* где */ 64 | CITY REGEXP '^a|^e|^i|^o|^u'; /* столбец содержит символы */ 65 | ``` 66 | 67 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 68 | 69 | --- -------------------------------------------------------------------------------- /tasks/11.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | CITY 3 | FROM STATION 4 | WHERE 5 | CITY LIKE 'a%' or 6 | CITY LIKE 'e%' or 7 | CITY LIKE 'i%' or 8 | CITY LIKE 'o%' or 9 | CITY LIKE 'u%' 10 | GROUP BY CITY; -------------------------------------------------------------------------------- /tasks/12.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 7 [Weather Observation Station 7] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the list of CITY names ending with vowels (a, e, i, o, u) from STATION. Your result cannot contain duplicates. 7 | Input Format 8 | The STATION table is described as follows: 9 | where LAT_N is the northern latitude and LONG_W is the western longitude. 10 | 11 | 12 | #### рус: 13 | Запросите список названий ГОРОДА, оканчивающихся на гласные (a, e, i, o, u), из STATION. Ваш результат не может содержать дубликатов. 14 | Формат ввода 15 | Таблица STATION описывается следующим образом: 16 | где LAT_N — северная широта, а LONG_W — западная долгота. 17 | 18 | 19 | #### код с коментариями: 20 | ```sql 21 | SELECT /* выбрать данные */ 22 | DISTINCT CITY /* уникальные значения столбца */ 23 | FROM STATION /* из таблицы */ 24 | WHERE /* где */ 25 | CITY LIKE '%a' OR /* значение столбца содержит симовл или */ 26 | CITY LIKE '%e' OR /* значение столбца содержит симовл или */ 27 | CITY LIKE '%i' OR /* значение столбца содержит симовл или */ 28 | CITY LIKE '%o' OR /* значение столбца содержит симовл или */ 29 | CITY LIKE '%u' ; /* значение столбца содержит симовл */ 30 | ``` 31 | 32 | #### код для hackerrank: 33 | ```sql 34 | SELECT 35 | DISTINCT CITY 36 | FROM STATION 37 | WHERE 38 | CITY LIKE '%a' OR 39 | CITY LIKE '%e' OR 40 | CITY LIKE '%i' OR 41 | CITY LIKE '%o' OR 42 | CITY LIKE '%u' ; 43 | ``` 44 | 45 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 46 | 47 | --- -------------------------------------------------------------------------------- /tasks/12.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | DISTINCT CITY 3 | FROM STATION 4 | WHERE 5 | CITY LIKE '%a' OR 6 | CITY LIKE '%e' OR 7 | CITY LIKE '%i' OR 8 | CITY LIKE '%o' OR 9 | CITY LIKE '%u' ; -------------------------------------------------------------------------------- /tasks/13.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 8 - [Weather Observation Station 8] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the list of CITY names from STATION which have vowels (i.e., a, e, i, o, and u) as both their first and last characters. Your result cannot contain duplicates. 7 | 8 | input format 9 | The STATION table is described as follows: 10 | where LAT_N is the northern latitude and LONG_W is the western longitude. 11 | 12 | 13 | #### рус: 14 | Запросите список названий ГОРОДА из STATION, в которых гласные (т. е. a, e, i, o и u) стоят 15 | как в первом, так и в последнем символе. Ваш результат не может содержать дубликатов. 16 | 17 | формат ввода 18 | Таблица STATION описывается следующим образом: 19 | где LAT_N — северная широта, а LONG_W — западная долгота. 20 | 21 | 22 | #### код с коментариями: 23 | ```sql 24 | SELECT /* выбрать данные */ 25 | DISTINCT CITY /* уникальные значения столбца */ 26 | FROM STATION /* из таблицы */ 27 | WHERE /* где */ 28 | -- условие №1 состоящие из другого набора условий 29 | (CITY LIKE 'a%' OR /* условие или */ 30 | CITY LIKE 'e%' OR /* условие или */ 31 | CITY LIKE 'i%' OR /* условие или */ 32 | CITY LIKE 'o%' OR /* условие или */ 33 | CITY LIKE 'u%') /* условие */ 34 | AND 35 | -- условие №2 состоящие из другого набора условий 36 | (CITY LIKE '%a' OR /* условие или */ 37 | CITY LIKE '%e' OR /* условие или */ 38 | CITY LIKE '%i' OR /* условие или */ 39 | CITY LIKE '%o' OR /* условие или */ 40 | CITY LIKE '%u'); /* условие*/ 41 | ``` 42 | 43 | #### код для hackerrank: 44 | ```sql 45 | SELECT 46 | DISTINCT CITY 47 | FROM STATION 48 | WHERE 49 | (CITY LIKE 'a%' OR 50 | CITY LIKE 'e%' OR 51 | CITY LIKE 'i%' OR 52 | CITY LIKE 'o%' OR 53 | CITY LIKE 'u%') 54 | AND 55 | (CITY LIKE '%a' OR 56 | CITY LIKE '%e' OR 57 | CITY LIKE '%i' OR 58 | CITY LIKE '%o' OR 59 | CITY LIKE '%u'); 60 | ``` 61 | или: 62 | ```sql 63 | SELECT 64 | DISTINCT CITY 65 | FROM STATION 66 | WHERE 67 | LOWER(left(city,1)) in ("a","o","e","i","u") 68 | AND 69 | LOWER(right(city,1)) in ("a","o","e","i","u"); 70 | ``` 71 | или: 72 | ```SQL 73 | SELECT 74 | DISTINCT CITY 75 | FROM STATION 76 | WHERE 77 | substr(lower(city),-1,1) in ('a', 'e', 'i', 'o', 'u') 78 | AND 79 | substr(lower(city),1,1) in ('a', 'e', 'i', 'o', 'u') ; 80 | ``` 81 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 82 | 83 | --- -------------------------------------------------------------------------------- /tasks/13.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | DISTINCT CITY 3 | FROM STATION 4 | WHERE 5 | (CITY LIKE 'a%' OR 6 | CITY LIKE 'e%' OR 7 | CITY LIKE 'i%' OR 8 | CITY LIKE 'o%' OR 9 | CITY LIKE 'u%') 10 | AND 11 | (CITY LIKE '%a' OR 12 | CITY LIKE '%e' OR 13 | CITY LIKE '%i' OR 14 | CITY LIKE '%o' OR 15 | CITY LIKE '%u'); -------------------------------------------------------------------------------- /tasks/14.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 9 - [Weather Observation Station 9] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the list of CITY names from STATION that do not start with vowels. Your result cannot contain duplicates. 7 | 8 | Input Format 9 | 10 | The STATION table is described as follows: 11 | where LAT_N is the northern latitude and LONG_W is the western longitude. 12 | 13 | 14 | #### рус: 15 | Запросите список названий ГОРОДА из STATION, которые не начинаются с гласных. 16 | Ваш результат не может содержать дубликатов. 17 | 18 | Формат ввода 19 | 20 | Таблица STATION описывается следующим образом: 21 | где LAT_N — северная широта, а LONG_W — западная долгота. 22 | 23 | 24 | #### код с коментариями: 25 | ```sql 26 | SELECT /* выбрать данные */ 27 | DISTINCT CITY /* уникальные значения столбца */ 28 | FROM STATION /* из таблицы */ 29 | WHERE /* где */ 30 | LEFT(CITY, 1) not IN ('A', 'I', 'O', 'U', 'E') 31 | ``` 32 | 33 | #### код для hackerrank: 34 | ```sql 35 | SELECT 36 | DISTINCT CITY 37 | FROM STATION 38 | WHERE 39 | LEFT(CITY, 1) not IN ('A', 'I', 'O', 'U', 'E') 40 | ``` 41 | 42 | 43 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 44 | 45 | --- -------------------------------------------------------------------------------- /tasks/14.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | DISTINCT CITY 3 | FROM STATION 4 | WHERE 5 | LEFT(CITY, 1) not IN ('A', 'I', 'O', 'U', 'E') -------------------------------------------------------------------------------- /tasks/15.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 10 - [Weather Observation Station 10] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the list of CITY names from STATION that do not end with vowels. Your result cannot contain duplicates. 7 | 8 | Input Format 9 | 10 | The STATION table is described as follows: 11 | where LAT_N is the northern latitude and LONG_W is the western longitude. 12 | 13 | 14 | #### рус: 15 | Запросите список названий ГОРОДА из STATION, которые не заканчиваются на гласные. Ваш результат не может содержать дубликатов. 16 | 17 | Формат ввода 18 | 19 | Таблица STATION описывается следующим образом: 20 | где LAT_N — северная широта, а LONG_W — западная долгота. 21 | 22 | 23 | #### код с коментариями: 24 | ```sql 25 | SELECT /* выбрать данные */ 26 | DISTINCT CITY /* уникальные значения столбца */ 27 | FROM STATION /* из таблицы */ 28 | WHERE /* где */ 29 | SUBSTRING(CITY, -1) not IN ('A', 'I', 'O', 'U', 'E') 30 | ``` 31 | 32 | #### код для hackerrank: 33 | ```sql 34 | SELECT 35 | DISTINCT CITY 36 | FROM STATION 37 | WHERE 38 | SUBSTRING(CITY, -1) not IN ('A', 'I', 'O', 'U', 'E') 39 | ``` 40 | 41 | 42 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 43 | 44 | --- -------------------------------------------------------------------------------- /tasks/15.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | DISTINCT CITY 3 | FROM STATION 4 | WHERE 5 | SUBSTRING(CITY, -1) not IN ('A', 'I', 'O', 'U', 'E') -------------------------------------------------------------------------------- /tasks/16.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 11 - [Weather Observation Station 11] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the list of CITY names from STATION that either do not start with vowels or do not end with vowels. Your result cannot contain duplicates. 7 | 8 | Input Format 9 | 10 | The STATION table is described as follows: 11 | where LAT_N is the northern latitude and LONG_W is the western longitude. 12 | 13 | 14 | #### рус: 15 | Запросите список названий ГОРОДА из STATION, которые либо не начинаются с гласных, 16 | либо не заканчиваются на гласные. Ваш результат не может содержать дубликатов. 17 | 18 | Формат ввода 19 | 20 | Таблица STATION описывается следующим образом: 21 | где LAT_N — северная широта, а LONG_W — западная долгота. 22 | 23 | 24 | #### код с коментариями: 25 | ```sql 26 | SELECT /* выбрать данные */ 27 | DISTINCT CITY /* уникальные значения столбца */ 28 | FROM STATION /* из таблицы */ 29 | WHERE /* где */ 30 | -- условие №1 состоящие из других условий 31 | (CITY not LIKE 'a%' and /* условие и */ 32 | CITY not LIKE 'e%' and /* условие и */ 33 | CITY not LIKE 'i%' and /* условие и */ 34 | CITY not LIKE 'o%' and /* условие и */ 35 | CITY not LIKE 'u%') /* условие */ 36 | OR /* или */ 37 | -- условие №2 состоящие из других условий 38 | (CITY not LIKE '%a' and /* условие и */ 39 | CITY not LIKE '%e' and /* условие и */ 40 | CITY not LIKE '%i' and /* условие и */ 41 | CITY not LIKE '%o' and /* условие и */ 42 | CITY not LIKE '%u') /* условие*/ 43 | ``` 44 | 45 | #### код для hackerrank: 46 | ```sql 47 | SELECT 48 | DISTINCT CITY 49 | FROM STATION 50 | WHERE 51 | (CITY not LIKE 'a%' and 52 | CITY not LIKE 'e%' and 53 | CITY not LIKE 'i%' and 54 | CITY not LIKE 'o%' and 55 | CITY not LIKE 'u%') 56 | OR 57 | (CITY not LIKE '%a' and 58 | CITY not LIKE '%e' and 59 | CITY not LIKE '%i' and 60 | CITY not LIKE '%o' and 61 | CITY not LIKE '%u') 62 | ``` 63 | 64 | ```sql 65 | SELECT 66 | DISTINCT CITY 67 | FROM STATION 68 | WHERE 69 | substr(lower(city),1,1) not in ('a', 'e', 'i', 'o', 'u') 70 | OR 71 | substr(lower(city),-1,1) not in ('a', 'e', 'i', 'o', 'u'); 72 | ``` 73 | 74 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 75 | 76 | --- -------------------------------------------------------------------------------- /tasks/16.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | DISTINCT CITY 3 | FROM STATION 4 | WHERE 5 | (CITY not LIKE 'a%' and 6 | CITY not LIKE 'e%' and 7 | CITY not LIKE 'i%' and 8 | CITY not LIKE 'o%' and 9 | CITY not LIKE 'u%') 10 | OR 11 | (CITY not LIKE '%a' and 12 | CITY not LIKE '%e' and 13 | CITY not LIKE '%i' and 14 | CITY not LIKE '%o' and 15 | CITY not LIKE '%u') -------------------------------------------------------------------------------- /tasks/17.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 12 - [Weather Observation Station 12] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the list of CITY names from STATION that do not start with vowels and do not end with vowels. Your result cannot contain duplicates. 7 | 8 | Input Format 9 | 10 | The STATION table is described as follows: 11 | where LAT_N is the northern latitude and LONG_W is the western longitude. 12 | 13 | 14 | #### рус: 15 | Запросите список названий ГОРОДА из STATION, которые не начинаются с гласных и 16 | не заканчиваются на гласные. Ваш результат не может содержать дубликатов. 17 | 18 | Формат ввода 19 | 20 | Таблица STATION описывается следующим образом: 21 | где LAT_N — северная широта, а LONG_W — западная долгота. 22 | 23 | 24 | #### код с коментариями: 25 | ```sql 26 | SELECT /* выбрать данные */ 27 | DISTINCT CITY /* уникальные значения столбца */ 28 | FROM STATION /* из таблицы */ 29 | WHERE /* где */ 30 | -- условие №1 состоящие из других условий 31 | (CITY not LIKE 'a%' and /* условие и */ 32 | CITY not LIKE 'e%' and /* условие и */ 33 | CITY not LIKE 'i%' and /* условие и */ 34 | CITY not LIKE 'o%' and /* условие и */ 35 | CITY not LIKE 'u%') /* условие */ 36 | AND /* и */ 37 | -- условие №2 состоящие из других условий 38 | (CITY not LIKE '%a' and /* условие и */ 39 | CITY not LIKE '%e' and /* условие и */ 40 | CITY not LIKE '%i' and /* условие и */ 41 | CITY not LIKE '%o' and /* условие и */ 42 | CITY not LIKE '%u') /* условие*/ 43 | ``` 44 | 45 | #### код для hackerrank: 46 | ```SQL 47 | SELECT 48 | DISTINCT CITY 49 | FROM STATION 50 | WHERE 51 | (CITY not LIKE 'a%' and 52 | CITY not LIKE 'e%' and 53 | CITY not LIKE 'i%' and 54 | CITY not LIKE 'o%' and 55 | CITY not LIKE 'u%') 56 | AND 57 | (CITY not LIKE '%a' and 58 | CITY not LIKE '%e' and 59 | CITY not LIKE '%i' and 60 | CITY not LIKE '%o' and 61 | CITY not LIKE '%u') 62 | ``` 63 | 64 | ```sql 65 | SELECT 66 | DISTINCT CITY 67 | FROM STATION 68 | WHERE 69 | substr(lower(city),1,1) not in ('a', 'e', 'i', 'o', 'u') 70 | AND 71 | substr(lower(city),-1,1) not in ('a', 'e', 'i', 'o', 'u'); 72 | ``` 73 | 74 | ```sql 75 | SELECT 76 | DISTINCT CITY 77 | FROM STATION 78 | WHERE 79 | CITY REGEXP '^[^AEIOUaeiou].*[^AEIOUaeiou]$'; 80 | ``` 81 | 82 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 83 | 84 | --- -------------------------------------------------------------------------------- /tasks/17.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | DISTINCT CITY 3 | FROM STATION 4 | WHERE 5 | (CITY not LIKE 'a%' and 6 | CITY not LIKE 'e%' and 7 | CITY not LIKE 'i%' and 8 | CITY not LIKE 'o%' and 9 | CITY not LIKE 'u%') 10 | AND 11 | (CITY not LIKE '%a' and 12 | CITY not LIKE '%e' and 13 | CITY not LIKE '%i' and 14 | CITY not LIKE '%o' and 15 | CITY not LIKE '%u') -------------------------------------------------------------------------------- /tasks/18.md: -------------------------------------------------------------------------------- 1 | ### Выше 75 баллов - [Higher Than 75 Marks] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the Name of any student in STUDENTS who scored higher than Marks. Order your output by the last three characters of each name. If two or more students both have names ending in the same last three characters (i.e.: Bobby, Robby, etc.), secondary sort them by ascending ID. 7 | 8 | Input Format 9 | 10 | The STUDENTS table is described as follows:The Name column only contains uppercase (A-Z) and lowercase (a-z) letters. 11 | 12 | 13 | #### рус: 14 | Запросите имя любого учащегося в STUDENTS, который набрал больше баллов, чем Marks. 15 | Упорядочить выходные данные по последним трем символам каждого имени. 16 | Если два или более учащихся имеют имена, оканчивающиеся на одни и те же последние три символа (например, Бобби, Робби и т. д.), вторичная сортировка их по возрастанию идентификатора. 17 | 18 | Формат ввода 19 | Таблица STUDENTS описывается следующим образом: Столбец Name содержит только прописные (A-Z) и строчные (a-z) буквы. 20 | 21 | 22 | #### код с коментариями: 23 | ```sql 24 | SELECT NAME /* выбрать данные столбца */ 25 | FROM STUDENTS /* из таблицы */ 26 | WHERE MARKS>75 /* где условие */ 27 | ORDER BY /* отсортировать по */ 28 | RIGHT(NAME,3), /* справа 3-й последний символ */ 29 | ID /* далее по номеру записи */ 30 | ``` 31 | 32 | #### код для hackerrank: 33 | ```sql 34 | SELECT NAME 35 | FROM STUDENTS 36 | WHERE MARKS>75 37 | ORDER BY 38 | RIGHT(NAME,3), 39 | ID 40 | ``` 41 | 42 | 43 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 44 | 45 | --- -------------------------------------------------------------------------------- /tasks/18.sql: -------------------------------------------------------------------------------- 1 | SELECT NAME 2 | FROM STUDENTS 3 | WHERE MARKS>75 4 | ORDER BY 5 | RIGHT(NAME,3), 6 | ID -------------------------------------------------------------------------------- /tasks/19.md: -------------------------------------------------------------------------------- 1 | ### Имена сотрудников - [Employee Names] 2 | 3 | solution 4 | 5 | #### eng: 6 | Write a query that prints a list of employee names (i.e.: the name attribute) from the Employee table in alphabetical order. 7 | 8 | Input Format 9 | The Employee table containing employee data for a company is described as follows: 10 | where employee_id is an employee's ID number, name is their name, months is the total number of months they've been working for the company, and salary is their monthly salary. 11 | 12 | 13 | #### рус: 14 | Напишите запрос, который выводит список имен сотрудников (т.е. атрибут name) 15 | из таблицы Employee в алфавитном порядке. 16 | 17 | Формат ввода 18 | Таблица Employee, содержащая данные о сотрудниках компании, описывается следующим образом: 19 | где employee_id — идентификационный номер сотрудника, name — его имя, month — общее количество месяцев, в течение которых он проработал в компании, а зарплата — его месячная зарплата. 20 | 21 | 22 | #### код с коментариями: 23 | ```sql 24 | SELECT NAME /* выбрать данные столбца */ 25 | FROM Employee /* из таблицы */ 26 | ORDER BY NAME /* отсортировать по имени */ 27 | ``` 28 | 29 | #### код для hackerrank: 30 | ```sql 31 | SELECT NAME 32 | FROM Employee 33 | ORDER BY NAME 34 | ``` 35 | 36 | 37 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 38 | 39 | --- -------------------------------------------------------------------------------- /tasks/19.sql: -------------------------------------------------------------------------------- 1 | SELECT NAME 2 | FROM Employee 3 | ORDER BY NAME -------------------------------------------------------------------------------- /tasks/2.md: -------------------------------------------------------------------------------- 1 | ### Пересмотр выбора запроса II [Revising the Select Query II] 2 | solution 3 | 4 | #### eng: 5 | 6 | Query the NAME field for all American cities in the CITY table with populations larger than 120000. The CountryCode for America is USA. 7 | The CITY table is described as follows: 8 | 9 | 10 | #### рус: 11 | 12 | Запросите поле NAME для всех американских городов в таблице CITY с населением более 120 000 человек. CountryCode для Америки — USA. 13 | Таблица CITY описывается следующим образом: 14 | 15 | #### код с пояснениями: 16 | ```sql 17 | SELECT /* выбрать данные */ 18 | NAME /* столбец */ 19 | FROM /* из */ 20 | CITY /* таблицы */ 21 | WHERE /* где */ 22 | POPULATION > 120000 AND /* условие 1 и */ 23 | COUNTRYCODE = 'USA' /* условие 2 */ 24 | ``` 25 | 26 | #### код для hackerrank 27 | ```sql 28 | SELECT NAME 29 | FROM CITY 30 | WHERE POPULATION > 120000 AND COUNTRYCODE = 'USA' 31 | ``` 32 | 33 | 34 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 35 | 36 | --- -------------------------------------------------------------------------------- /tasks/2.sql: -------------------------------------------------------------------------------- 1 | SELECT NAME 2 | FROM CITY 3 | WHERE POPULATION > 120000 AND COUNTRYCODE = 'USA' -------------------------------------------------------------------------------- /tasks/20.md: -------------------------------------------------------------------------------- 1 | ### Заработная плата сотрудников - [Employee Salaries] 2 | 3 | solution 4 | 5 | #### eng: 6 | Write a query that prints a list of employee names (i.e.: the name attribute) for employees in Employee having a salary greater than per month who have been employees for less than months. Sort your result by ascending employee_id. 7 | 8 | Input Format 9 | The Employee table containing employee data for a company is described as follows: 10 | where employee_id is an employee's ID number, name is their name, months is the total number of months they've been working for the company, and salary is the their monthly salary. 11 | 12 | 13 | #### рус: 14 | Напишите запрос, который выводит список имен сотрудников (т. е. атрибут name) для сотрудников 15 | в Employee с зарплатой больше 2000, чем в месяц, которые проработали меньше 10 месяцев. 16 | Отсортируйте результат по возрастанию employee_id. 17 | 18 | Формат ввода 19 | 20 | Таблица Employee, содержащая данные о сотрудниках компании, описывается следующим образом: 21 | где employee_id — это идентификационный номер сотрудника, name — это его имя, months — это общее количество месяцев, в течение которых они работали в компании, а зарплата — это их месячная зарплата. 22 | 23 | 24 | #### код с коментариями: 25 | ```sql 26 | SELECT name /* выбрать данные столбца */ 27 | FROM Employee /* из таблицы */ 28 | WHERE /* где */ 29 | salary> 2000 AND /* условие и */ 30 | months<10 /* условие 31 | ORDER BY employee_id; /* отсортировать по столбцу */ 32 | ``` 33 | 34 | #### код для hackerrank: 35 | ```sql 36 | SELECT name 37 | FROM Employee 38 | WHERE 39 | salary> 2000 AND 40 | months<10 41 | ORDER BY employee_id; 42 | ``` 43 | 44 | 45 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 46 | 47 | --- -------------------------------------------------------------------------------- /tasks/20.sql: -------------------------------------------------------------------------------- 1 | SELECT name 2 | FROM Employee 3 | WHERE 4 | salary> 2000 AND 5 | months<10 6 | ORDER BY employee_id; -------------------------------------------------------------------------------- /tasks/21.md: -------------------------------------------------------------------------------- 1 | ### Тип треугольника - [Type of Triangle] 2 | 3 | solution 4 | 5 | #### eng: 6 | Write a query identifying the type of each record in the TRIANGLES table using its three side lengths. Output one of the following statements for each record in the table: 7 | 8 | Equilateral: It's a triangle with sides of equal length. 9 | Isosceles: It's a triangle with sides of equal length. 10 | Scalene: It's a triangle with sides of differing lengths. 11 | Not A Triangle: The given values of A, B, and C don't form a triangle. 12 | Input Format 13 | 14 | The TRIANGLES table is described as follows: 15 | Each row in the table denotes the lengths of each of a triangle's three sides. 16 | 17 | Sample Input 18 | 19 | 20 | #### рус: 21 | Напишите запрос, определяющий тип каждой записи в таблице TRIANGLES, используя три длины 22 | ее сторон. Выведите одно из следующих утверждений для каждой записи в таблице: 23 | 24 | Равносторонний: Это треугольник со сторонами одинаковой длины. 25 | Равнобедренный: это треугольник со сторонами одинаковой длины. 26 | Scalene: Это треугольник со сторонами разной длины. 27 | Не треугольник: заданные значения A, B и C не образуют треугольник. 28 | Формат ввода 29 | 30 | Таблица TRIANGLES описывается следующим образом: 31 | Каждая строка в таблице обозначает длины каждой из трех сторон треугольника. 32 | 33 | Образец ввода 34 | 35 | 36 | #### код с коментариями: 37 | ```sql 38 | SELECT /* выбрать данные */ 39 | CASE /* условный оператор */ 40 | WHEN A+B<=C THEN 'Not A Triangle' /* условие 1 - результат */ 41 | WHEN A=B AND B=C and A=C THEN 'Equilateral' /* условие 2 - результат */ 42 | WHEN A=B OR B=C OR C=A THEN 'Isosceles' /* условие 3 - результат */ 43 | ELSE 'Scalene' /* иначе - результат */ 44 | END /* конец условного оператора */ 45 | FROM TRIANGLES; /* из таблицы */ 46 | ``` 47 | 48 | #### код для hackerrank: 49 | ```sql 50 | SELECT 51 | CASE 52 | WHEN A+B<=C THEN 'Not A Triangle' 53 | WHEN A=B AND B=C and A=C THEN 'Equilateral' 54 | WHEN A=B OR B=C OR C=A THEN 'Isosceles' 55 | ELSE 'Scalene' 56 | END 57 | FROM TRIANGLES; 58 | 59 | ``` 60 | 61 | 62 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 63 | 64 | --- -------------------------------------------------------------------------------- /tasks/21.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | CASE 3 | WHEN A+B<=C THEN 'Not A Triangle' 4 | WHEN A=B AND B=C and A=C THEN 'Equilateral' 5 | WHEN A=B OR B=C OR C=A THEN 'Isosceles' 6 | ELSE 'Scalene' 7 | END 8 | FROM TRIANGLES; -------------------------------------------------------------------------------- /tasks/22.md: -------------------------------------------------------------------------------- 1 | ### ПОДУШКИ - [The PADS] 2 | 3 | solution 4 | 5 | #### eng: 6 | Generate the following two result sets: 7 | 8 | Query an alphabetically ordered list of all names in OCCUPATIONS, immediately followed by the first letter of each profession as a parenthetical (i.e.: enclosed in parentheses). For example: AnActorName(A), ADoctorName(D), AProfessorName(P), and ASingerName(S). 9 | Query the number of ocurrences of each occupation in OCCUPATIONS. Sort the occurrences in ascending order, and output them in the following format: 10 | 11 | There are a total of [occupation_count] [occupation]s. 12 | where [occupation_count] is the number of occurrences of an occupation in OCCUPATIONS and [occupation] is the lowercase occupation name. If more than one Occupation has the same [occupation_count], they should be ordered alphabetically. 13 | 14 | Note: There will be at least two entries in the table for each type of occupation. 15 | 16 | 17 | #### рус: 18 | Сгенерируйте следующие два набора результатов: 19 | 20 | Запросите упорядоченный по алфавиту список всех имен в ПРОФЕССИЯХ, сразу за которыми следует первая буква каждой 21 | профессии в скобках (т. е. заключенная в круглые скобки). Например: AnActorName(A), 22 | ADoctorName(D), AProfessorName(P) и ASingerName(S). 23 | Запросите количество вхождений каждой профессии в OCCUPATIONS. 24 | Отсортируйте вхождения в порядке возрастания и выведите их в следующем формате: 25 | 26 | Всего существует [occupation_count] [оккупация]. 27 | где [occupation_count] — количество вхождений занятия в OCCUPATIONS, а [occupation] — название занятия в нижнем регистре. Если более чем одна профессия имеет один и тот же [occupation_count], они должны быть упорядочены в алфавитном порядке. 28 | 29 | Примечание. В таблице будет не менее двух записей для каждого вида занятий. 30 | 31 | 32 | #### код с коментариями: 33 | ```sql 34 | -- первый запрос 35 | SELECT /* выбрать данные */ 36 | CONCAT(name,'(',LEFT(occupation,1),')') AS Name /* столбец */ 37 | FROM OCCUPATIONS /* из таблицы */ 38 | ORDER BY name; /* отсортировать по столбцу */ 39 | 40 | -- второй запрос 41 | SELECT /* выбрать данные */ 42 | CONCAT('There are a total of ',COUNT(*),' ',LOWER(occupation),'s.') /* столбец */ 43 | FROM OCCUPATIONS /* из таблицы */ 44 | GROUP BY occupation /* сгруппировать */ 45 | ORDER BY COUNT(*) ASC; /* отсортировать по количеству */ 46 | ``` 47 | 48 | #### код для hackerrank: 49 | ```sql 50 | SELECT 51 | CONCAT(name,'(',LEFT(occupation,1),')') AS Name 52 | FROM OCCUPATIONS 53 | ORDER BY name; 54 | 55 | SELECT 56 | CONCAT('There are a total of ',COUNT(*),' ',LOWER(occupation),'s.') 57 | FROM OCCUPATIONS 58 | GROUP BY occupation 59 | ORDER BY COUNT(*) ASC; 60 | ``` 61 | 62 | 63 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 64 | 65 | --- -------------------------------------------------------------------------------- /tasks/22.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | CONCAT(name,'(',LEFT(occupation,1),')') AS Name 3 | FROM OCCUPATIONS 4 | ORDER BY name; 5 | 6 | SELECT 7 | CONCAT('There are a total of ',COUNT(*),' ',LOWER(occupation),'s.') 8 | FROM OCCUPATIONS 9 | GROUP BY occupation 10 | ORDER BY COUNT(*) ASC; -------------------------------------------------------------------------------- /tasks/23.md: -------------------------------------------------------------------------------- 1 | ### Профессии - [Occupations] 2 | 3 | solution 4 | 5 | #### eng: 6 | Pivot the Occupation column in OCCUPATIONS so that each Name is sorted alphabetically and displayed underneath its 7 | corresponding Occupation. The output column headers should be Doctor, Professor, Singer, and Actor, respectively. 8 | 9 | Note: Print NULL when there are no more names corresponding to an occupation. 10 | 11 | Input Format 12 | 13 | The OCCUPATIONS table is described as follows: 14 | Occupation will only contain one of the following values: Doctor, Professor, Singer or Actor. 15 | 16 | 17 | #### рус: 18 | Поверните столбец «Профессия» в «ОККУПАЦИИ», чтобы каждое имя было отсортировано в 19 | алфавитном порядке и отображалось под соответствующей профессией. 20 | Заголовки выходных столбцов должны быть «Доктор», «Профессор», «Певец» и «Актер» 21 | соответственно. 22 | 23 | Примечание. Выведите NULL, если больше нет имен, соответствующих роду занятий. 24 | 25 | Формат ввода 26 | 27 | Таблица OCCUPATIONS описывается следующим образом: 28 | Род занятий будет содержать только одно из следующих значений: Доктор, Профессор, Певец 29 | или Актер. 30 | 31 | 32 | #### код с коментариями: 33 | ```sql 34 | -- Итак нам нужно будет создать таблицу из 4-х столбцов доктор, профессор, певец, 35 | -- обобщенное табличное выражение 36 | WITH temp AS ( /* создать временную таблицу */ 37 | SELECT /* выбрать данные */ 38 | CASE /* в случае */ 39 | WHEN occupation='doctor' THEN name /* когда занятие доктор имя внести в столбец доктор */ 40 | END AS doctor, 41 | CASE /* в случае */ 42 | WHEN occupation='professor' THEN name /* когда занятие профессор имя внести в столбец профессор */ 43 | END AS professor, 44 | CASE /* в случае */ 45 | WHEN occupation='singer' THEN name /* когда занятие певец имя внести в столбец певец */ 46 | END AS singer, 47 | CASE /* в случае */ 48 | WHEN occupation='actor' THEN name /* когда занятие актер имя внести в столбец актер */ 49 | END AS actor, 50 | row_number() over /* нумерует строки, возвращаемые запросом */ 51 | (partition by occupation /* разделить по занятию */ 52 | ORDER BY name) as ran /* отсортировать по имени */ 53 | FROM occupations) /* из таблицы занятие */ 54 | SELECT /* выбрать данные */ 55 | min(doctor), /* выбрать минимальные данные столбца */ 56 | min(professor), /* выбрать минимальные данные столбца */ 57 | min(singer), /* выбрать минимальные данные столбца */ 58 | min(actor) /* выбрать минимальные данные столбца */ 59 | FROM temp /* из временной таблицы */ 60 | GROUP BY ran /* сгруппировать по столбцу номер по порядку */ 61 | ``` 62 | 63 | #### код для hackerrank: 64 | ```sql 65 | WITH temp AS ( 66 | SELECT 67 | CASE 68 | WHEN occupation='doctor' THEN name 69 | END AS doctor, 70 | CASE 71 | WHEN occupation='professor' THEN name 72 | END AS professor, 73 | CASE 74 | WHEN occupation='singer' THEN name 75 | END AS singer, 76 | CASE 77 | WHEN occupation='actor' THEN name 78 | END AS actor, 79 | row_number() over (partition by occupation ORDER BY name) as ran 80 | FROM occupations) 81 | SELECT 82 | min(doctor), 83 | min(professor), 84 | min(singer), 85 | min(actor) 86 | FROM temp 87 | GROUP BY ran 88 | ``` 89 | 90 | 91 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 92 | 93 | --- -------------------------------------------------------------------------------- /tasks/23.sql: -------------------------------------------------------------------------------- 1 | WITH temp AS ( 2 | SELECT 3 | CASE 4 | WHEN occupation='doctor' THEN name 5 | END AS doctor, 6 | CASE 7 | WHEN occupation='professor' THEN name 8 | END AS professor, 9 | CASE 10 | WHEN occupation='singer' THEN name 11 | END AS singer, 12 | CASE 13 | WHEN occupation='actor' THEN name 14 | END AS actor, 15 | row_number() over (partition by occupation ORDER BY name) as ran 16 | FROM occupations) 17 | SELECT 18 | min(doctor), 19 | min(professor), 20 | min(singer), 21 | min(actor) 22 | FROM temp 23 | GROUP BY ran -------------------------------------------------------------------------------- /tasks/24.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | You are given a table, BST, containing two columns: N and P, where N represents the value of a node in Binary Tree, 7 | and P is the parent of N. 8 | 9 | Write a query to find the node type of Binary Tree ordered by the value of the node. Output one of the following 10 | for each node: 11 | 12 | Root: If node is root node. 13 | Leaf: If node is leaf node. 14 | Inner: If node is neither root nor leaf node. 15 | 16 | 17 | #### рус: 18 | Вам дана таблица BST, содержащая два столбца: N и P, где N представляет значение узла в двоичном дереве, а P 19 | является родителем N. 20 | 21 | 22 | Напишите запрос, чтобы найти тип узла двоичного дерева, упорядоченный по значению узла. Выведите одно из следующего 23 | для каждого узла: 24 | 25 | Корень: если узел является корневым узлом. 26 | Лист: если узел является листовым узлом. 27 | Внутренний: если узел не является ни корневым, ни конечным узлом. 28 | 29 | 30 | #### код с коментариями: 31 | ```sql 32 | SELECT /* выбрать данные */ 33 | n , /* столбец номер */ 34 | CASE /* создадим новый столбец, в котором */ 35 | WHEN p IS NULL THEN "Root" /* если значение ноль, то выводим значение "Root"*/ 36 | WHEN n IN(SELECT p FROM bst) THEN "Inner" /* если значение есть в столбце то значение "Inner" */ 37 | ELSE "Leaf" /* все остальные значение "Leaf" */ 38 | END /* закончить новый столбец */ 39 | FROM bst /* из таблицы */ 40 | ORDER BY n; /* отсортировать по номеру */ 41 | ``` 42 | 43 | #### код для hackerrank: 44 | ```sql 45 | SELECT 46 | n , 47 | CASE 48 | WHEN p IS NULL THEN "Root" 49 | WHEN n IN(SELECT p FROM bst) THEN "Inner" 50 | ELSE "Leaf" 51 | END 52 | FROM bst 53 | ORDER BY n; 54 | ``` 55 | 56 | 57 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 58 | 59 | --- -------------------------------------------------------------------------------- /tasks/24.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | n , 3 | CASE 4 | WHEN p IS NULL THEN "Root" 5 | WHEN n IN(SELECT p FROM bst) THEN "Inner" 6 | ELSE "Leaf" 7 | END 8 | FROM bst 9 | ORDER BY n; -------------------------------------------------------------------------------- /tasks/25.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Amber's conglomerate corporation just acquired some new companies. Each of the companies follows this hierarchy: 7 | 8 | Given the table schemas below, write a query to print the company_code, founder name, total number of lead managers, 9 | total number of senior managers, total number of managers, and total number of employees. Order your output by 10 | ascending company_code. 11 | 12 | Note: 13 | 14 | The tables may contain duplicate records. 15 | The company_code is string, so the sorting should not be numeric. For example, if the company_codes are C_1, C_2, 16 | and C_10, then the ascending company_codes will be C_1, C_10, and C_2. 17 | 18 | 19 | 20 | #### рус: 21 | Корпорация-конгломерат Эмбер только что приобрела несколько новых компаний. Каждая из компаний следует этой иерархии: 22 | 23 | Учитывая приведенные ниже схемы таблиц, напишите запрос для вывода кода компании, имени основателя, общего числа 24 | ведущих менеджеров, общего числа старших менеджеров, общего числа менеджеров и общего числа сотрудников. 25 | Упорядочите выходные данные по возрастанию company_code. 26 | 27 | Примечание: 28 | 29 | Таблицы могут содержать повторяющиеся записи. 30 | Код компании является строкой, поэтому сортировка не должна быть числовой. Например, если company_codes — C_1, C_2 31 | и C_10, то возрастающие company_codes будут C_1, C_10 и C_2. 32 | 33 | 34 | #### код с коментариями: 35 | ```sql 36 | SELECT /* выбрать данные */ 37 | c.company_code, /* столбец код компании */ 38 | c.founder, /* столбец основатель */ 39 | COUNT(DISTINCT l.lead_manager_code), /* столбец количество лидов */ 40 | COUNT(DISTINCT s.senior_manager_code), /* столбец количество сеньеров */ 41 | COUNT(DISTINCT ma.manager_code), /* столбец количество программистов */ 42 | COUNT(DISTINCT e.employee_code) /* столбец количество разработчик */ 43 | FROM company c /* из таблицы компании с псевданимом */ 44 | RIGHT JOIN lead_manager l ON l.company_code = c.company_code /* правое объединение таблицы лиды и компании */ 45 | RIGHT JOIN senior_manager s ON s.company_code = c.company_code /* правое объединение таблицы сеньеры и компании */ 46 | RIGHT JOIN manager ma ON ma.company_code = c.company_code /* правое объединение таблицы программисты и компании */ 47 | RIGHT JOIN employee e ON e.company_code = c.company_code /* правое объединение таблицы разработчики и компании */ 48 | GROUP BY c.company_code, founder /* сгруппировать по компаниям, затем по основателям */ 49 | ``` 50 | 51 | #### код для hackerrank: 52 | ```sql 53 | SELECT 54 | c.company_code, 55 | c.founder, 56 | COUNT(DISTINCT l.lead_manager_code), 57 | COUNT(DISTINCT s.senior_manager_code), 58 | COUNT(DISTINCT ma.manager_code), 59 | COUNT(DISTINCT e.employee_code) 60 | FROM company c 61 | RIGHT JOIN lead_manager l ON l.company_code = c.company_code 62 | RIGHT JOIN senior_manager s ON s.company_code = c.company_code 63 | RIGHT JOIN manager ma ON ma.company_code = c.company_code 64 | RIGHT JOIN employee e ON e.company_code = c.company_code 65 | GROUP BY c.company_code, founder 66 | ``` 67 | 68 | 69 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 70 | 71 | --- -------------------------------------------------------------------------------- /tasks/25.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | c.company_code, 3 | c.founder, 4 | COUNT(DISTINCT l.lead_manager_code), 5 | COUNT(DISTINCT s.senior_manager_code), 6 | COUNT(DISTINCT ma.manager_code), 7 | COUNT(DISTINCT e.employee_code) 8 | FROM company c 9 | RIGHT JOIN lead_manager l ON l.company_code = c.company_code 10 | RIGHT JOIN senior_manager s ON s.company_code = c.company_code 11 | RIGHT JOIN manager ma ON ma.company_code = c.company_code 12 | RIGHT JOIN employee e ON e.company_code = c.company_code 13 | GROUP BY c.company_code, founder -------------------------------------------------------------------------------- /tasks/26.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the average population for all cities in CITY, rounded down to the nearest integer. 7 | 8 | Input Format 9 | 10 | The CITY table is described as follows: 11 | 12 | 13 | #### рус: 14 | Запросите среднюю численность населения для всех городов в CITY, округленную до ближайшего целого числа. 15 | 16 | Формат ввода 17 | 18 | Таблица CITY описывается следующим образом: 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | SELECT /* выбрать данные */ 24 | ROUND(AVG(POPULATION)) /* столбец округленное среднее значение численности населения */ 25 | FROM CITY; /* из таблицы */ 26 | ``` 27 | 28 | #### код для hackerrank: 29 | ```sql 30 | SELECT 31 | ROUND(AVG(POPULATION)) 32 | FROM CITY; 33 | ``` 34 | 35 | 36 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 37 | 38 | --- -------------------------------------------------------------------------------- /tasks/26.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | ROUND(AVG(POPULATION)) 3 | FROM CITY; -------------------------------------------------------------------------------- /tasks/27.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the sum of the populations for all Japanese cities in CITY. The COUNTRYCODE for Japan is JPN. 7 | 8 | Input Format 9 | 10 | The CITY table is described as follows: 11 | 12 | 13 | #### рус: 14 | Запросите сумму населения для всех японских городов в CITY. КОД СТРАНЫ для Японии — JPN. 15 | 16 | Формат ввода 17 | 18 | Таблица CITY описывается следующим образом: 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | SELECT /* выбрать данные */ 24 | SUM(POPULATION) /* столбец сумма популяции */ 25 | FROM CITY /* из таблицы */ 26 | WHERE COUNTRYCODE = 'JPN'; /* где код страны равен японскому */ 27 | ``` 28 | 29 | #### код для hackerrank: 30 | ```sql 31 | SELECT 32 | SUM(POPULATION) 33 | FROM CITY 34 | WHERE COUNTRYCODE = 'JPN'; 35 | ``` 36 | 37 | 38 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 39 | 40 | --- -------------------------------------------------------------------------------- /tasks/27.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | SUM(POPULATION) 3 | FROM CITY 4 | WHERE COUNTRYCODE = 'JPN'; -------------------------------------------------------------------------------- /tasks/28.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the difference between the maximum and minimum populations in CITY. 7 | 8 | Input Format 9 | 10 | The CITY table is described as follows: 11 | 12 | 13 | #### рус: 14 | Запросите разницу между максимальной и минимальной численностью населения в CITY. 15 | 16 | Формат ввода 17 | 18 | Таблица CITY описывается следующим образом: 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | SELECT /* выбрать данные */ 24 | MAX(POPULATION) - MIN(POPULATION) /* столбец разница максимального значения и минимального значения */ 25 | FROM CITY; /* из таблицы */ 26 | ``` 27 | 28 | #### код для hackerrank: 29 | ```sql 30 | SELECT 31 | MAX(POPULATION) - MIN(POPULATION) 32 | FROM CITY; 33 | ``` 34 | 35 | 36 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 37 | 38 | --- -------------------------------------------------------------------------------- /tasks/28.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MAX(POPULATION) - MIN(POPULATION) 3 | FROM CITY; -------------------------------------------------------------------------------- /tasks/29.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Samantha was tasked with calculating the average monthly salaries for all employees in the EMPLOYEES table, but did 7 | not realize her keyboard's key was broken until after completing the calculation. She wants your help finding the 8 | difference between her miscalculation (using salaries with any zeros removed), and the actual average salary. 9 | 10 | Write a query calculating the amount of error (i.e.: average monthly salaries), and round it up to the next integer. 11 | 12 | 13 | #### рус: 14 | Саманте было поручено рассчитать среднемесячную заработную плату для всех сотрудников в таблице EMPLOYEES, но она 15 | не осознавала, что клавиша на ее клавиатуре сломана, пока не завершила расчет. Она хочет, чтобы вы помогли найти 16 | разницу между ее просчетом (с использованием зарплаты с удаленными нулями) и фактической средней зарплатой. 17 | 18 | Напишите запрос, вычисляющий сумму ошибки (т. е. среднемесячную заработную плату), и округлите ее до следующего целого числа. 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | SELECT /* выбрать данные */ 24 | ROUND(AVG(SALARY)) - ROUND(AVG(REPLACE(SALARY,'0',''))) /* столбец округленной разницы средней зарпалты и 25 | округленного значения замененной зарплаты */ 26 | FROM EMPLOYEES; /* из таблицы */ 27 | ``` 28 | 29 | #### код для hackerrank: 30 | ```sql 31 | SELECT 32 | ROUND(AVG(SALARY)) - ROUND(AVG(REPLACE(SALARY,'0',''))) 33 | FROM EMPLOYEES; 34 | ``` 35 | 36 | 37 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 38 | 39 | --- -------------------------------------------------------------------------------- /tasks/29.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | ROUND(AVG(SALARY)) - ROUND(AVG(REPLACE(SALARY,'0',''))) 3 | FROM EMPLOYEES; -------------------------------------------------------------------------------- /tasks/3.md: -------------------------------------------------------------------------------- 1 | ### Выбрать все [Select All] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query all columns (attributes) for every row in the CITY table. 7 | The CITY table is described as follows: 8 | 9 | 10 | #### рус: 11 | Запросите все столбцы (атрибуты) для каждой строки в таблице CITY. 12 | Таблица CITY описывается следующим образом: 13 | 14 | 15 | #### код с пояснениями: 16 | ```sql 17 | SELECT /* выбрать данные */ 18 | * /* всех столбцов */ 19 | FROM /* из */ 20 | CITY /* таблицы */ 21 | ``` 22 | 23 | #### код для hackerrank: 24 | ```sql 25 | SELECT * FROM CITY 26 | ``` 27 | 28 | 29 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 30 | 31 | --- -------------------------------------------------------------------------------- /tasks/3.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM CITY -------------------------------------------------------------------------------- /tasks/30.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | We define an employee's total earnings to be their monthly worked, and the maximum total earnings to be the maximum 7 | total earnings for any employee in the Employee table. Write a query to find the maximum total earnings for all 8 | employees as well as the total number of employees who have maximum total earnings. Then print these values as 9 | space-separated integers. 10 | 11 | 12 | #### рус: 13 | Мы определяем общий заработок сотрудника как его отработанный месяц, а максимальный общий заработок — как 14 | максимальный общий заработок любого сотрудника в таблице «Сотрудники». Напишите запрос, чтобы найти максимальный 15 | общий заработок для всех сотрудников, а также общее количество сотрудников с максимальным общим заработком. Затем 16 | выведите эти значения как целые числа, разделенные пробелами. 17 | 18 | 19 | #### код с коментариями: 20 | ```sql 21 | SELECT /* выбрать данные */ 22 | MAX(SALARY*MONTHS), /* столбец максимальное значение произведения */ 23 | COUNT(SALARY*MONTHS) /* столбец сумма произведения */ 24 | FROM EMPLOYEE /* из таблицы */ 25 | WHERE (SALARY*MONTHS) = (SELECT /* где выполняется условие */ 26 | MAX(SALARY*MONTHS) 27 | FROM EMPLOYEE); 28 | ``` 29 | 30 | #### код для hackerrank: 31 | ```sql 32 | SELECT 33 | MAX(SALARY*MONTHS), 34 | COUNT(SALARY*MONTHS) 35 | FROM EMPLOYEE 36 | WHERE (SALARY*MONTHS) = (SELECT 37 | MAX(SALARY*MONTHS) 38 | FROM EMPLOYEE); 39 | ``` 40 | 41 | 42 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 43 | 44 | --- -------------------------------------------------------------------------------- /tasks/30.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MAX(SALARY*MONTHS), 3 | COUNT(SALARY*MONTHS) 4 | FROM EMPLOYEE 5 | WHERE (SALARY*MONTHS) = (SELECT 6 | MAX(SALARY*MONTHS) 7 | FROM EMPLOYEE); -------------------------------------------------------------------------------- /tasks/31.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query a count of the number of cities in CITY having a Population larger than 100000 7 | 8 | 9 | #### рус: 10 | Запрос количества городов в CITY с населением более 100000 человек 11 | 12 | 13 | #### код с коментариями: 14 | ```sql 15 | SELECT /* выбрать данные */ 16 | COUNT(POPULATION) /* столбец подсчета населения */ 17 | FROM CITY /* из таблицы */ 18 | WHERE POPULATION > 100000; /* где условие */ 19 | ``` 20 | 21 | #### код для hackerrank: 22 | ```sql 23 | SELECT 24 | COUNT(POPULATION) 25 | FROM CITY 26 | WHERE POPULATION > 100000; 27 | ``` 28 | 29 | 30 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 31 | 32 | --- -------------------------------------------------------------------------------- /tasks/31.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | COUNT(POPULATION) 3 | FROM CITY 4 | WHERE POPULATION > 100000; -------------------------------------------------------------------------------- /tasks/32.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the total population of all cities in CITY where District is California. 7 | 8 | Input Format 9 | 10 | The CITY table is described as follows: 11 | 12 | 13 | #### рус: 14 | Запросите общую численность населения всех городов в CITY, где District — Калифорния. 15 | 16 | Формат ввода 17 | 18 | Таблица CITY описывается следующим образом: 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | SELECT /* выбрать данные */ 24 | SUM(POPULATION) /* столбец суммы населения */ 25 | FROM CITY /* из таблицы */ 26 | WHERE DISTRICT = 'CALIFORNIA'; /* где условие */ 27 | ``` 28 | 29 | #### код для hackerrank: 30 | ```sql 31 | SELECT 32 | SUM(POPULATION) 33 | FROM CITY 34 | WHERE DISTRICT = 'CALIFORNIA'; 35 | ``` 36 | 37 | 38 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 39 | 40 | --- -------------------------------------------------------------------------------- /tasks/32.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | SUM(POPULATION) 3 | FROM CITY 4 | WHERE DISTRICT = 'CALIFORNIA'; -------------------------------------------------------------------------------- /tasks/33.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the average population of all cities in CITY where District is California. 7 | 8 | Input Format 9 | 10 | The CITY table is described as follows: 11 | 12 | 13 | #### рус: 14 | Запросить среднюю численность населения всех городов в CITY, где District — Калифорния. 15 | 16 | Формат ввода 17 | 18 | Таблица CITY описывается следующим образом: 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | SELECT /* выбрать данные */ 24 | AVG(POPULATION) /* столбец */ 25 | FROM CITY /* из таблицы */ 26 | WHERE DISTRICT = 'CALIFORNIA'; /* где условие */ 27 | ``` 28 | 29 | #### код для hackerrank: 30 | ```sql 31 | SELECT 32 | AVG(POPULATION) 33 | FROM CITY 34 | WHERE DISTRICT = 'CALIFORNIA'; 35 | ``` 36 | 37 | 38 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 39 | 40 | --- -------------------------------------------------------------------------------- /tasks/33.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | AVG(POPULATION) 3 | FROM CITY 4 | WHERE DISTRICT = 'CALIFORNIA'; -------------------------------------------------------------------------------- /tasks/34.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the following two values from the STATION table: 7 | 8 | The sum of all values in LAT_N rounded to a scale of decimal places. 9 | The sum of all values in LONG_W rounded to a scale of decimal places. 10 | Input Format 11 | 12 | The STATION table is described as follows: 13 | 14 | Station.jpg 15 | 16 | where LAT_N is the northern latitude and LONG_W is the western longitude. 17 | 18 | 19 | #### рус: 20 | Запросите следующие два значения из таблицы STATION: 21 | 22 | Сумма всех значений в LAT_N, округленная до десятичной дроби. 23 | Сумма всех значений в LONG_W, округленная до десятичных разрядов. 24 | Формат ввода 25 | 26 | Таблица STATION описывается следующим образом: 27 | 28 | Станция.jpg 29 | 30 | где LAT_N — северная широта, а LONG_W — западная долгота. 31 | 32 | 33 | #### код с коментариями: 34 | ```sql 35 | SELECT /* выбрать данные */ 36 | ROUND(SUM(LAT_N),2), /* столбец */ 37 | ROUND(SUM(LONG_W),2) /* столбец */ 38 | FROM STATION; /* из таблицы */ 39 | ``` 40 | 41 | #### код для hackerrank: 42 | ```sql 43 | SELECT 44 | ROUND(SUM(LAT_N),2), 45 | ROUND(SUM(LONG_W),2) 46 | FROM STATION; 47 | ``` 48 | 49 | 50 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 51 | 52 | --- -------------------------------------------------------------------------------- /tasks/34.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | ROUND(SUM(LAT_N),2) , 3 | ROUND(SUM(LONG_W),2) 4 | FROM STATION; -------------------------------------------------------------------------------- /tasks/35.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the sum of Northern Latitudes (LAT_N) from STATION having values greater than .. and less than .. . Truncate your 7 | answer to decimal places. 8 | 9 | Input Format 10 | 11 | The STATION table is described as follows: 12 | 13 | 14 | #### рус: 15 | Запросите сумму северных широт (LAT_N) из STATION со значениями больше .. и меньше .. . Сократите свой ответ до 16 | десятичных знаков. 17 | 18 | Формат ввода 19 | 20 | Таблица STATION описывается следующим образом: 21 | 22 | 23 | #### код с коментариями: 24 | ```sql 25 | SELECT /* выбрать данные */ 26 | ROUND(SUM(LAT_N), 4) /* столбец округленное значение суммы */ 27 | FROM STATION /* из таблицы */ 28 | WHERE /* где */ 29 | LAT_N > 38.7880 AND /* условие 1 и */ 30 | LAT_N < 137.2345 /* условие 2 */ 31 | ``` 32 | 33 | #### код для hackerrank: 34 | ```sql 35 | SELECT 36 | ROUND(SUM(LAT_N), 4) 37 | FROM STATION 38 | WHERE 39 | LAT_N > 38.7880 AND 40 | LAT_N < 137.2345 41 | ``` 42 | 43 | 44 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 45 | 46 | --- -------------------------------------------------------------------------------- /tasks/35.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | ROUND(SUM(LAT_N), 4) 3 | FROM STATION 4 | WHERE 5 | LAT_N > 38.7880 AND 6 | LAT_N < 137.2345 -------------------------------------------------------------------------------- /tasks/36.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the greatest value of the Northern Latitudes (LAT_N) from STATION that is less than . Truncate your answer to decimal places. 7 | 8 | Input Format 9 | 10 | The STATION table is described as follows: 11 | 12 | 13 | #### рус: 14 | Запросите наибольшее значение северных широт (LAT_N) из STATION, которое меньше. Сократите свой ответ до десятичных знаков. 15 | 16 | Формат ввода 17 | 18 | Таблица STATION описывается следующим образом: 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | SELECT /* выбрать данные */ 24 | TRUNCATE(MAX(lat_N),4) /* столбец */ 25 | FROM STATION /* из таблицы */ 26 | WHERE LAT_N <137.2345 /* где условие */ 27 | ``` 28 | 29 | #### код для hackerrank: 30 | ```sql 31 | SELECT 32 | TRUNCATE(MAX(lat_N),4) 33 | FROM STATION 34 | WHERE LAT_N <137.2345 35 | ``` 36 | 37 | 38 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 39 | 40 | --- -------------------------------------------------------------------------------- /tasks/36.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | TRUNCATE(MAX(lat_N),4) 3 | FROM STATION 4 | WHERE LAT_N <137.2345 -------------------------------------------------------------------------------- /tasks/37.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the Western Longitude (LONG_W) for the largest Northern Latitude (LAT_N) in STATION that is less than . Round your answer to decimal places. 7 | 8 | Input Format 9 | 10 | The STATION table is described as follows: 11 | 12 | 13 | #### рус: 14 | Запросите западную долготу (LONG_W) для наибольшей северной широты (LAT_N) в STATION, которая меньше . Округлите ответ до десятичных знаков. 15 | 16 | Формат ввода 17 | 18 | Таблица STATION описывается следующим образом: 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | SELECT /* выбрать данные */ 24 | CAST(LONG_W AS DECIMAL(10,4)) /* столбец */ 25 | FROM STATION /* где */ 26 | WHERE LAT_N < 137.2345 /* условие */ 27 | ORDER BY LAT_N /* отсортировать по */ 28 | DESC LIMIT 1 /* вывести только одно значение */ 29 | ``` 30 | 31 | #### код для hackerrank: 32 | ```sql 33 | SELECT 34 | CAST(LONG_W AS DECIMAL(10,4)) 35 | FROM STATION 36 | WHERE LAT_N < 137.2345 37 | ORDER BY LAT_N 38 | DESC LIMIT 1 39 | ``` 40 | 41 | 42 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 43 | 44 | --- -------------------------------------------------------------------------------- /tasks/37.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | CAST(LONG_W AS DECIMAL(10,4)) 3 | FROM STATION 4 | WHERE LAT_N < 137.2345 5 | ORDER BY LAT_N 6 | DESC LIMIT 1 -------------------------------------------------------------------------------- /tasks/38.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the smallest Northern Latitude (LAT_N) from STATION that is greater than . Round your answer to decimal places. 7 | 8 | Input Format 9 | 10 | The STATION table is described as follows: 11 | 12 | 13 | #### рус: 14 | Запросить наименьшую северную широту (LAT_N) из STATION, превышающую . Округлите ответ до десятичных знаков. 15 | 16 | Формат ввода 17 | 18 | Таблица STATION описывается следующим образом: 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | SELECT /* выбрать данные */ 24 | ROUND(MIN(LAT_N),4) /* столбец */ 25 | FROM STATION /* из таблицы */ 26 | WHERE LAT_N >38.778 /* где условие */ 27 | ``` 28 | 29 | #### код для hackerrank: 30 | ```sql 31 | SELECT 32 | ROUND(MIN(LAT_N),4) 33 | FROM STATION 34 | WHERE LAT_N >38.778 35 | ``` 36 | 37 | 38 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 39 | 40 | --- -------------------------------------------------------------------------------- /tasks/38.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | ROUND(MIN(LAT_N),4) 3 | FROM STATION 4 | WHERE LAT_N >38.778 -------------------------------------------------------------------------------- /tasks/39.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the Western Longitude (LONG_W)where the smallest Northern Latitude (LAT_N) in STATION is greater than . Round your answer to decimal places. 7 | 8 | Input Format 9 | 10 | The STATION table is described as follows: 11 | 12 | 13 | #### рус: 14 | Запросить западную долготу (LONG_W), где наименьшая северная широта (LAT_N) в STATION больше . Округлите ответ до десятичных знаков. 15 | 16 | Формат ввода 17 | 18 | Таблица STATION описывается следующим образом: 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | SELECT /* выбрать данные */ 24 | ROUND(LONG_W,4) /* столбец */ 25 | FROM STATION /* из таблицы */ 26 | WHERE LAT_N > 38.7780 /* где условие */ 27 | ORDER BY LAT_N ASC /* отсортировать по столбцу */ 28 | LIMIT 1; /* вывести одно значение */ 29 | ``` 30 | 31 | #### код для hackerrank: 32 | ```sql 33 | SELECT 34 | ROUND(LONG_W,4) 35 | FROM STATION 36 | WHERE LAT_N > 38.7780 37 | ORDER BY LAT_N ASC 38 | LIMIT 1; 39 | ``` 40 | 41 | 42 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 43 | 44 | --- -------------------------------------------------------------------------------- /tasks/39.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | ROUND(LONG_W,4) 3 | FROM STATION 4 | WHERE LAT_N > 38.7780 5 | ORDER BY LAT_N ASC 6 | LIMIT 1; -------------------------------------------------------------------------------- /tasks/4.md: -------------------------------------------------------------------------------- 1 | ### Выбрать по идентификатору [Select By ID] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query all columns for a city in CITY with the ID 1661. 7 | The CITY table is described as follows: 8 | 9 | 10 | #### рус: 11 | Запросите все столбцы для города в CITY с идентификатором 1661. 12 | Таблица CITY описывается следующим образом: 13 | 14 | 15 | #### код с пояснениями: 16 | ```sql 17 | SELECT * /* выбрать все столбца */ 18 | FROM CITY /* из таблицы */ 19 | WHERE ID = 1661 /* где условие */ 20 | ``` 21 | 22 | #### код для hackerrank 23 | ```sql 24 | SELECT * FROM CITY WHERE ID = 1661 25 | ``` 26 | 27 | 28 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 29 | 30 | --- -------------------------------------------------------------------------------- /tasks/4.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM CITY WHERE ID = 1661 -------------------------------------------------------------------------------- /tasks/40.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Consider and to be two points on a 2D plane. 7 | 8 | happens to equal the minimum value in Northern Latitude (LAT_N in STATION). 9 | happens to equal the minimum value in Western Longitude (LONG_W in STATION). 10 | happens to equal the maximum value in Northern Latitude (LAT_N in STATION). 11 | happens to equal the maximum value in Western Longitude (LONG_W in STATION). 12 | Query the Manhattan Distance between points and and round it to a scale of decimal places. 13 | 14 | Input Format 15 | 16 | The STATION table is described as follows: 17 | 18 | 19 | #### рус: 20 | Рассмотрим и быть двумя точками на 2D-плоскости. 21 | 22 | оказывается равным минимальному значению в северной широте (LAT_N в STATION). 23 | оказывается равным минимальному значению западной долготы (LONG_W в STATION). 24 | оказывается равным максимальному значению в северной широте (LAT_N в STATION). 25 | оказывается равным максимальному значению западной долготы (LONG_W в STATION). 26 | Запросите Манхэттенское расстояние между точками и округлите его до десятичной дроби. 27 | 28 | Формат ввода 29 | 30 | Таблица STATION описывается следующим образом: 31 | 32 | 33 | #### код с коментариями: 34 | ```sql 35 | SELECT /* выбрать данные */ 36 | ROUND((Max(Lat_N)-Min(Lat_N))+(Max(LONG_W)-Min(LONG_W)), 4) /* столбец */ 37 | FROM STATION /* из таблицы */ 38 | ``` 39 | 40 | #### код для hackerrank: 41 | ```sql 42 | SELECT 43 | ROUND((Max(Lat_N)-Min(Lat_N))+(Max(LONG_W)-Min(LONG_W)), 4) 44 | FROM STATION 45 | ``` 46 | 47 | 48 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 49 | 50 | --- -------------------------------------------------------------------------------- /tasks/40.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | ROUND((Max(Lat_N)-Min(Lat_N))+(Max(LONG_W)-Min(LONG_W)), 4) 3 | FROM STATION -------------------------------------------------------------------------------- /tasks/41.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Consider and to be two points on a 2D plane where are the respective minimum and maximum values of Northern Latitude (LAT_N) and are the respective minimum and maximum values of Western Longitude (LONG_W) in STATION. 7 | 8 | Query the Euclidean Distance between points and and format your answer to display decimal digits. 9 | 10 | Input Format 11 | 12 | The STATION table is described as follows: 13 | 14 | 15 | #### рус: 16 | Рассмотрим две точки и на двумерной плоскости, где — соответствующие минимальное и максимальное значения северной широты (LAT_N) и соответствующие минимальное и максимальное значения западной долготы (LONG_W) в STATION. 17 | 18 | Запросите евклидово расстояние между точками и отформатируйте ответ для отображения десятичных цифр. 19 | 20 | Формат ввода 21 | 22 | Таблица STATION описывается следующим образом: 23 | 24 | 25 | #### код с коментариями: 26 | ```sql 27 | WITH CTE AS ( /* создадим временную таблицу */ 28 | SELECT /* выбрать данные */ 29 | MIN(LAT_N) X1, /* столбец */ 30 | MAX(LAT_N) X2, /* столбец */ 31 | MIN(LONG_W) Y1, /* столбец */ 32 | MAX(LONG_W) Y2 /* столбец */ 33 | FROM STATION) /* из таблицы */ 34 | SELECT /* выбрать данные */ 35 | ROUND(SQRT(POWER((X2-X1), 2) + POWER((Y2-Y1),2)),4) FROM CTE; /* выбрать данные */ 36 | ``` 37 | 38 | #### код для hackerrank: 39 | ```sql 40 | WITH CTE AS ( 41 | SELECT 42 | MIN(LAT_N) X1, 43 | MAX(LAT_N) X2, 44 | MIN(LONG_W) Y1, 45 | MAX(LONG_W) Y2 46 | FROM STATION) 47 | SELECT ROUND(SQRT(POWER((X2-X1), 2) + POWER((Y2-Y1),2)),4) FROM CTE; 48 | ``` 49 | 50 | 51 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 52 | 53 | --- -------------------------------------------------------------------------------- /tasks/41.sql: -------------------------------------------------------------------------------- 1 | WITH CTE AS ( 2 | SELECT 3 | MIN(LAT_N) X1, 4 | MAX(LAT_N) X2, 5 | MIN(LONG_W) Y1, 6 | MAX(LONG_W) Y2 7 | FROM STATION) 8 | SELECT ROUND(SQRT(POWER((X2-X1), 2) + POWER((Y2-Y1),2)),4) FROM CTE; -------------------------------------------------------------------------------- /tasks/42.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | A median is defined as a number separating the higher half of a data set from the lower half. Query the median of the Northern Latitudes (LAT_N) from STATION and round your answer to decimal places. 7 | 8 | Input Format 9 | 10 | The STATION table is described as follows: 11 | 12 | 13 | #### рус: 14 | Медиана определяется как число, отделяющее верхнюю половину набора данных от нижней половины. Запросите медиану 15 | северных широт (LAT_N) из STATION и округлите ответ до десятичных знаков. 16 | 17 | Формат ввода 18 | 19 | Таблица STATION описывается следующим образом: 20 | 21 | 22 | #### код с коментариями: 23 | ```sql 24 | SELECT /* выбрать данные */ 25 | ROUND(LAT_N,4) /* столбец */ 26 | FROM /* из таблицы */ 27 | (SELECT /* выбрать данные */ 28 | LAT_N, /* столбец */ 29 | PERCENT_RANK() OVER (ORDER BY LAT_N) AS PERCENTILE /* столбец с псевданимом */ 30 | FROM STATION) AS A /* из таблицы */ 31 | WHERE PERCENTILE = 0.5; /* где условие */ 32 | ``` 33 | 34 | #### код для hackerrank: 35 | ```sql 36 | SELECT 37 | ROUND(LAT_N,4) 38 | FROM 39 | (SELECT 40 | LAT_N, 41 | PERCENT_RANK() 42 | OVER (ORDER BY LAT_N) AS PERCENTILE 43 | FROM STATION) AS A 44 | WHERE PERCENTILE = 0.5; 45 | ``` 46 | 47 | 48 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 49 | 50 | --- -------------------------------------------------------------------------------- /tasks/42.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | ROUND(LAT_N,4) 3 | FROM 4 | (SELECT 5 | LAT_N, 6 | PERCENT_RANK() 7 | OVER (ORDER BY LAT_N) AS PERCENTILE 8 | FROM STATION) AS A 9 | WHERE PERCENTILE = 0.5; -------------------------------------------------------------------------------- /tasks/43.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | You did such a great job helping Julia with her last coding contest challenge that she wants you to work on this one, too! 7 | 8 | The total score of a hacker is the sum of their maximum scores for all of the challenges. Write a query to print 9 | the hacker_id, name, and total score of the hackers ordered by the descending score. If more than one hacker 10 | achieved the same total score, then sort the result by ascending hacker_id. Exclude all hackers with a total score 11 | of from your result. 12 | 13 | Input Format 14 | 15 | The following tables contain contest data: 16 | 17 | Hackers: The hacker_id is the id of the hacker, and name is the name of the hacker. 18 | 19 | Submissions: The submission_id is the id of the submission, hacker_id is the id of the hacker who made the 20 | submission, challenge_id is the id of the challenge for which the submission belongs to, and score is the score of 21 | the submission. 22 | 23 | 24 | #### рус: 25 | Вы проделали такую большую работу, помогая Джулии с ее последним соревнованием по программированию, что она хочет, 26 | чтобы вы тоже поработали над этим! 27 | 28 | Общий балл хакера — это сумма его максимальных баллов за все испытания. Напишите запрос для вывода hacker_id, имени 29 | и общей оценки хакеров в порядке убывания. Если несколько хакеров набрали одинаковый общий балл, отсортируйте 30 | результат по возрастанию hacker_id. Исключите всех хакеров с общим счетом из вашего результата. 31 | 32 | Формат ввода 33 | 34 | В следующих таблицах содержатся данные о соревнованиях: 35 | 36 | Хакеры: hacker_id — это идентификатор хакера, а name — это имя хакера. 37 | 38 | Заявки: submit_id — это идентификатор отправки, hacker_id — это идентификатор хакера, сделавшего отправку, 39 | challenge_id — это идентификатор задачи, к которой относится отправка, а score — это оценка отправки. 40 | 41 | 42 | #### код с коментариями: 43 | ```sql 44 | SELECT /* выбрать данные */ 45 | h.hacker_id, /* столбец */ 46 | h.name, /* столбец */ 47 | sum(s.max_score) as total_score /* столбец */ 48 | FROM Hackers h /* из таблицы */ 49 | JOIN ( /* объединить */ 50 | SELECT /* выбрать данные */ 51 | hacker_id, /* столбец */ 52 | challenge_id, /* столбец */ 53 | MAX(score) as max_score /* столбец с псевдонимом */ 54 | FROM Submissions /* из таблицы */ 55 | GROUP BY 1,2) s /* сгруппировать по 1-му и 2-му столбцу */ 56 | ON h.hacker_id = s.hacker_id /* по номеру хакера */ 57 | GROUP BY 1,2 /* сгруппировать по 1-му и 2-му столбцу */ 58 | HAVING sum(s.max_score) > 0 /* где сумма больше нулая */ 59 | ORDER BY sum(s.max_score) DESC, h.hacker_id ASC /* отсортировать по .. */ 60 | ``` 61 | 62 | #### код для hackerrank: 63 | ```sql 64 | SELECT 65 | h.hacker_id, 66 | h.name, 67 | sum(s.max_score) as total_score 68 | FROM Hackers h 69 | JOIN ( 70 | SELECT 71 | hacker_id, 72 | challenge_id, 73 | MAX(score) as max_score 74 | FROM Submissions 75 | GROUP BY 1,2) s 76 | ON h.hacker_id = s.hacker_id 77 | GROUP BY 1,2 78 | HAVING sum(s.max_score) > 0 79 | ORDER BY sum(s.max_score) DESC, h.hacker_id ASC 80 | ``` 81 | 82 | 83 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 84 | 85 | --- -------------------------------------------------------------------------------- /tasks/43.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | h.hacker_id, 3 | h.name, 4 | sum(s.max_score) as total_score 5 | FROM Hackers h 6 | JOIN ( 7 | SELECT 8 | hacker_id, 9 | challenge_id, 10 | MAX(score) as max_score 11 | FROM Submissions 12 | GROUP BY 1,2) s 13 | ON h.hacker_id = s.hacker_id 14 | GROUP BY 1,2 15 | HAVING sum(s.max_score) > 0 16 | ORDER BY sum(s.max_score) DESC, h.hacker_id ASC -------------------------------------------------------------------------------- /tasks/44.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Samantha interviews many candidates from different colleges using coding challenges and contests. Write a query to 7 | print the contest_id, hacker_id, name, and the sums of total_submissions, total_accepted_submissions, total_views, 8 | and total_unique_views for each contest sorted by contest_id. Exclude the contest from the result if all four sums are . 9 | 10 | Note: A specific contest can be used to screen candidates at more than one college, but each college only holds 11 | screening contest. 12 | 13 | 14 | #### рус: 15 | Саманта берет интервью у многих кандидатов из разных колледжей, используя задачи и конкурсы по программированию. 16 | Напишите запрос для вывода идентификатора конкурса, идентификатора хакера, имени и сумм total_submissions, 17 | total_accepted_submissions, total_views и total_unique_views для каждого конкурса, отсортированного по конкурсу_id. 18 | Исключить конкурс из результата, если все четыре суммы равны . 19 | 20 | Примечание. Определенный конкурс может использоваться для отбора кандидатов более чем в одном колледже, но каждый 21 | колледж проводит только отборочный конкурс. 22 | 23 | 24 | #### код с коментариями: 25 | ```sql 26 | WITH TOTAL_SUBMISSION_STATS AS ( 27 | SELECT CHALLENGE_ID, 28 | SUM(TOTAL_SUBMISSIONS) AS GRAND_TOTAL_SUBMISSIONS, 29 | SUM(TOTAL_ACCEPTED_SUBMISSIONS) AS GRAND_TOTAL_ACCEPTED_SUBMISSIONS 30 | FROM SUBMISSION_STATS 31 | GROUP BY CHALLENGE_ID 32 | ), TOTAL_VIEW_STATS AS ( 33 | SELECT CHALLENGE_ID, 34 | SUM(TOTAL_VIEWS) AS GRAND_TOTAL_VIEWS, 35 | SUM(TOTAL_UNIQUE_VIEWS) AS GRAND_TOTAL_UNIQUE_VIEWS 36 | FROM VIEW_STATS 37 | GROUP BY CHALLENGE_ID 38 | ) 39 | SELECT C1.CONTEST_ID, HACKER_ID, NAME, 40 | SUM(GRAND_TOTAL_SUBMISSIONS), 41 | SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS), 42 | SUM(GRAND_TOTAL_VIEWS), 43 | SUM(GRAND_TOTAL_UNIQUE_VIEWS) 44 | FROM 45 | CONTESTS C1 46 | LEFT JOIN COLLEGES C2 ON C1.CONTEST_ID = C2.CONTEST_ID 47 | LEFT JOIN CHALLENGES C3 ON C2.COLLEGE_ID = C3.COLLEGE_ID 48 | LEFT JOIN TOTAL_VIEW_STATS V ON C3.CHALLENGE_ID = V.CHALLENGE_ID 49 | LEFT JOIN TOTAL_SUBMISSION_STATS S ON C3.CHALLENGE_ID = S.CHALLENGE_ID 50 | GROUP BY 51 | C1.CONTEST_ID, HACKER_ID, NAME 52 | HAVING 53 | SUM(GRAND_TOTAL_SUBMISSIONS) + 54 | SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS) + 55 | SUM(GRAND_TOTAL_VIEWS) + 56 | SUM(GRAND_TOTAL_UNIQUE_VIEWS) != 0 57 | ORDER BY C1.CONTEST_ID; 58 | ``` 59 | 60 | #### код для hackerrank: 61 | ```sql 62 | WITH TOTAL_SUBMISSION_STATS AS ( 63 | SELECT CHALLENGE_ID, 64 | SUM(TOTAL_SUBMISSIONS) AS GRAND_TOTAL_SUBMISSIONS, 65 | SUM(TOTAL_ACCEPTED_SUBMISSIONS) AS GRAND_TOTAL_ACCEPTED_SUBMISSIONS 66 | FROM SUBMISSION_STATS 67 | GROUP BY CHALLENGE_ID 68 | ), TOTAL_VIEW_STATS AS ( 69 | SELECT CHALLENGE_ID, 70 | SUM(TOTAL_VIEWS) AS GRAND_TOTAL_VIEWS, 71 | SUM(TOTAL_UNIQUE_VIEWS) AS GRAND_TOTAL_UNIQUE_VIEWS 72 | FROM VIEW_STATS 73 | GROUP BY CHALLENGE_ID 74 | ) 75 | SELECT C1.CONTEST_ID, HACKER_ID, NAME, 76 | SUM(GRAND_TOTAL_SUBMISSIONS), 77 | SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS), 78 | SUM(GRAND_TOTAL_VIEWS), 79 | SUM(GRAND_TOTAL_UNIQUE_VIEWS) 80 | FROM 81 | CONTESTS C1 82 | LEFT JOIN COLLEGES C2 ON C1.CONTEST_ID = C2.CONTEST_ID 83 | LEFT JOIN CHALLENGES C3 ON C2.COLLEGE_ID = C3.COLLEGE_ID 84 | LEFT JOIN TOTAL_VIEW_STATS V ON C3.CHALLENGE_ID = V.CHALLENGE_ID 85 | LEFT JOIN TOTAL_SUBMISSION_STATS S ON C3.CHALLENGE_ID = S.CHALLENGE_ID 86 | GROUP BY 87 | C1.CONTEST_ID, HACKER_ID, NAME 88 | HAVING 89 | SUM(GRAND_TOTAL_SUBMISSIONS) + 90 | SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS) + 91 | SUM(GRAND_TOTAL_VIEWS) + 92 | SUM(GRAND_TOTAL_UNIQUE_VIEWS) != 0 93 | ORDER BY C1.CONTEST_ID; 94 | ``` 95 | 96 | 97 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 98 | 99 | --- -------------------------------------------------------------------------------- /tasks/44.sql: -------------------------------------------------------------------------------- 1 | WITH TOTAL_SUBMISSION_STATS AS ( 2 | SELECT CHALLENGE_ID, 3 | SUM(TOTAL_SUBMISSIONS) AS GRAND_TOTAL_SUBMISSIONS, 4 | SUM(TOTAL_ACCEPTED_SUBMISSIONS) AS GRAND_TOTAL_ACCEPTED_SUBMISSIONS 5 | FROM SUBMISSION_STATS 6 | GROUP BY CHALLENGE_ID 7 | ), TOTAL_VIEW_STATS AS ( 8 | SELECT CHALLENGE_ID, 9 | SUM(TOTAL_VIEWS) AS GRAND_TOTAL_VIEWS, 10 | SUM(TOTAL_UNIQUE_VIEWS) AS GRAND_TOTAL_UNIQUE_VIEWS 11 | FROM VIEW_STATS 12 | GROUP BY CHALLENGE_ID 13 | ) 14 | SELECT C1.CONTEST_ID, HACKER_ID, NAME, 15 | SUM(GRAND_TOTAL_SUBMISSIONS), 16 | SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS), 17 | SUM(GRAND_TOTAL_VIEWS), 18 | SUM(GRAND_TOTAL_UNIQUE_VIEWS) 19 | FROM 20 | CONTESTS C1 21 | LEFT JOIN COLLEGES C2 ON C1.CONTEST_ID = C2.CONTEST_ID 22 | LEFT JOIN CHALLENGES C3 ON C2.COLLEGE_ID = C3.COLLEGE_ID 23 | LEFT JOIN TOTAL_VIEW_STATS V ON C3.CHALLENGE_ID = V.CHALLENGE_ID 24 | LEFT JOIN TOTAL_SUBMISSION_STATS S ON C3.CHALLENGE_ID = S.CHALLENGE_ID 25 | GROUP BY 26 | C1.CONTEST_ID, HACKER_ID, NAME 27 | HAVING 28 | SUM(GRAND_TOTAL_SUBMISSIONS) + 29 | SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS) + 30 | SUM(GRAND_TOTAL_VIEWS) + 31 | SUM(GRAND_TOTAL_UNIQUE_VIEWS) != 0 32 | ORDER BY C1.CONTEST_ID; -------------------------------------------------------------------------------- /tasks/45.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Given the CITY and COUNTRY tables, query the sum of the populations of all cities where the CONTINENT is 'Asia'. 7 | 8 | Note: CITY.CountryCode and COUNTRY.Code are matching key columns. 9 | 10 | Input Format 11 | 12 | The CITY and COUNTRY tables are described as follows: 13 | 14 | 15 | #### рус: 16 | Имея таблицы CITY и COUNTRY, запросите сумму населения всех городов, где CONTINENT — «Азия». 17 | 18 | Примечание. CITY.CountryCode и COUNTRY.Code соответствуют ключевым столбцам. 19 | 20 | Формат ввода 21 | 22 | Таблицы CITY и COUNTRY описываются следующим образом: 23 | 24 | 25 | #### код с коментариями: 26 | ```sql 27 | SELECT /* выбрать данные */ 28 | SUM(CITY.POPULATION) /* столбец */ 29 | FROM CITY /* из таблицы */ 30 | INNER JOIN COUNTRY /* объединить с таблицей */ 31 | ON CITY.COUNTRYCODE = COUNTRY.CODE /* по коду страны */ 32 | WHERE COUNTRY.CONTINENT = 'Asia' /* где условие */ 33 | ``` 34 | 35 | #### код для hackerrank: 36 | ```sql 37 | SELECT 38 | SUM(CITY.POPULATION) 39 | FROM CITY INNER JOIN COUNTRY 40 | ON CITY.COUNTRYCODE = COUNTRY.CODE 41 | WHERE COUNTRY.CONTINENT = 'Asia'; 42 | ``` 43 | 44 | 45 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 46 | 47 | --- -------------------------------------------------------------------------------- /tasks/45.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | SUM(CITY.POPULATION) 3 | FROM CITY 4 | INNER JOIN COUNTRY 5 | ON CITY.COUNTRYCODE = COUNTRY.CODE 6 | WHERE COUNTRY.CONTINENT = 'Asia' -------------------------------------------------------------------------------- /tasks/46.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Given the CITY and COUNTRY tables, query the sum of the populations of all cities where the CONTINENT is 'Asia'. 7 | 8 | Note: CITY.CountryCode and COUNTRY.Code are matching key columns. 9 | 10 | 11 | #### рус: 12 | Имея таблицы CITY и COUNTRY, запросите сумму населения всех городов, где CONTINENT — «Азия». 13 | 14 | Примечание. CITY.CountryCode и COUNTRY.Code соответствуют ключевым столбцам. 15 | 16 | 17 | #### код с коментариями: 18 | ```sql 19 | SELECT /* выбрать данные */ 20 | SUM(CITY.POPULATION) /* столбец */ 21 | FROM CITY /* из таблицы */ 22 | INNER JOIN COUNTRY /* объединить с таблицей */ 23 | ON CITY.COUNTRYCODE = COUNTRY.CODE /* по коду страны */ 24 | WHERE COUNTRY.CONTINENT = 'Asia' /* где условие */ 25 | ``` 26 | 27 | #### код для hackerrank: 28 | ```sql 29 | SELECT 30 | SUM(CITY.POPULATION) 31 | FROM CITY INNER JOIN COUNTRY 32 | ON CITY.COUNTRYCODE = COUNTRY.CODE 33 | WHERE COUNTRY.CONTINENT = 'Asia'; 34 | ``` 35 | 36 | 37 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 38 | 39 | --- -------------------------------------------------------------------------------- /tasks/46.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | SUM(CITY.POPULATION) 3 | FROM CITY INNER JOIN COUNTRY 4 | ON CITY.COUNTRYCODE = COUNTRY.CODE 5 | WHERE COUNTRY.CONTINENT = 'Asia'; -------------------------------------------------------------------------------- /tasks/47.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Given the CITY and COUNTRY tables, query the names of all cities where the CONTINENT is 'Africa'. 7 | 8 | Note: CITY.CountryCode and COUNTRY.Code are matching key columns. 9 | 10 | 11 | #### рус: 12 | Имея таблицы CITY и COUNTRY, запросите названия всех городов, где CONTINENT — «Африка». 13 | 14 | Примечание. CITY.CountryCode и COUNTRY.Code соответствуют ключевым столбцам. 15 | 16 | 17 | #### код с коментариями: 18 | ```sql 19 | SELECT 20 | CITY.NAME 21 | FROM CITY INNER JOIN COUNTRY 22 | ON CITY.COUNTRYCODE = COUNTRY.CODE 23 | WHERE COUNTRY.CONTINENT = 'Africa'; 24 | ``` 25 | 26 | #### код для hackerrank: 27 | ```sql 28 | SELECT 29 | CITY.NAME 30 | FROM CITY INNER JOIN COUNTRY 31 | ON CITY.COUNTRYCODE = COUNTRY.CODE 32 | WHERE COUNTRY.CONTINENT = 'Africa'; 33 | ``` 34 | 35 | 36 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 37 | 38 | --- -------------------------------------------------------------------------------- /tasks/47.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | CITY.NAME 3 | FROM CITY INNER JOIN COUNTRY 4 | ON CITY.COUNTRYCODE = COUNTRY.CODE 5 | WHERE COUNTRY.CONTINENT = 'Africa'; -------------------------------------------------------------------------------- /tasks/48.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Given the CITY and COUNTRY tables, query the names of all the continents (COUNTRY.Continent) and their respective average city populations (CITY.Population) rounded down to the nearest integer. 7 | 8 | Note: CITY.CountryCode and COUNTRY.Code are matching key columns. 9 | 10 | 11 | #### рус: 12 | Имея таблицы CITY и COUNTRY, запросите названия всех континентов (COUNTRY.Continent) и соответствующее среднее население городов (CITY.Population), округленное до ближайшего целого числа. 13 | 14 | Примечание. CITY.CountryCode и COUNTRY.Code соответствуют ключевым столбцам. 15 | 16 | 17 | #### код с коментариями: 18 | ```sql 19 | SELECT /* выбрать данные */ 20 | COUNTRY.CONTINENT, /* столбец */ 21 | FLOOR(AVG(CITY.POPULATION)) /* столбец */ 22 | FROM CITY JOIN COUNTRY /* из таблицы объединенной с таблицей */ 23 | ON CITY.COUNTRYCODE = COUNTRY.CODE /* по коду страны */ 24 | GROUP BY CONTINENT; /* сгруппировать по .. */ 25 | ``` 26 | 27 | #### код для hackerrank: 28 | ```sql 29 | SELECT 30 | COUNTRY.CONTINENT, 31 | FLOOR(AVG(CITY.POPULATION)) 32 | FROM CITY JOIN COUNTRY 33 | ON CITY.COUNTRYCODE = COUNTRY.CODE 34 | GROUP BY CONTINENT; 35 | ``` 36 | 37 | 38 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 39 | 40 | --- -------------------------------------------------------------------------------- /tasks/48.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | COUNTRY.CONTINENT, 3 | FLOOR(AVG(CITY.POPULATION)) 4 | FROM CITY JOIN COUNTRY 5 | ON CITY.COUNTRYCODE = COUNTRY.CODE 6 | GROUP BY CONTINENT; -------------------------------------------------------------------------------- /tasks/49.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | You are given two tables: Students and Grades. Students contains three columns ID, Name and Marks. 7 | 8 | 9 | 10 | Grades contains the following data: 11 | 12 | 13 | 14 | Ketty gives Eve a task to generate a report containing three columns: Name, Grade and Mark. Ketty doesn't want the 15 | NAMES of those students who received a grade lower than 8. The report must be in descending order by grade -- i.e. 16 | higher grades are entered first. If there is more than one student with the same grade (8-10) assigned to them, 17 | order those particular students by their name alphabetically. Finally, if the grade is lower than 8, use "NULL" as 18 | their name and list them by their grades in descending order. If there is more than one student with the same grade 19 | (1-7) assigned to them, order those particular students by their marks in ascending order. 20 | 21 | Write a query to help Eve. 22 | 23 | 24 | #### рус: 25 | Вам даны две таблицы: Студенты и Оценки. Студенты содержит три столбца ID, имя и отметки. 26 | 27 | 28 | 29 | Оценки содержат следующие данные: 30 | 31 | 32 | 33 | Кетти дает Еве задание создать отчет, содержащий три столбца: Имя, Оценка и Оценка. Кетти не нужны ИМЕНА тех 34 | учеников, которые получили оценки ниже 8. Отчет должен быть в порядке убывания оценок, т. е. более высокие оценки 35 | вводятся первыми. Если есть более одного ученика с одинаковой оценкой (8-10), упорядочите этих конкретных учеников 36 | по их именам в алфавитном порядке. Наконец, если оценка ниже 8, используйте «NULL» в качестве их имени и 37 | перечислите их по их оценкам в порядке убывания. Если есть более одного учащегося с одинаковой оценкой (1-7), 38 | упорядочите этих конкретных учащихся по их оценкам в порядке возрастания. 39 | 40 | Напишите запрос, чтобы помочь Еве. 41 | 42 | 43 | #### код с коментариями: 44 | ```sql 45 | SELECT /* выбрать данные */ 46 | CASE WHEN B.GRADE < 8 THEN NULL /* столбец по условию */ 47 | ELSE A.NAME END AS NAME, 48 | B.GRADE, /* столбец */ 49 | A.MARKS /* столбец */ 50 | FROM STUDENTS A /* из таблицы */ 51 | INNER JOIN GRADES B /* объединенной с таблицей */ 52 | ON A.MARKS BETWEEN B.MIN_MARK AND B.MAX_MARK /* по столбцу */ 53 | ORDER BY B.GRADE DESC, NAME, A.MARKS /* отсортировать по */ 54 | ``` 55 | 56 | #### код для hackerrank: 57 | ```sql 58 | SELECT 59 | CASE WHEN B.GRADE < 8 THEN NULL 60 | ELSE A.NAME END AS NAME, 61 | B.GRADE, 62 | A.MARKS 63 | FROM STUDENTS A 64 | INNER JOIN GRADES B 65 | ON A.MARKS BETWEEN B.MIN_MARK AND B.MAX_MARK 66 | ORDER BY 67 | B.GRADE DESC, NAME, A.MARKS 68 | ``` 69 | 70 | 71 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 72 | 73 | --- -------------------------------------------------------------------------------- /tasks/49.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | CASE WHEN B.GRADE < 8 THEN NULL 3 | ELSE A.NAME END AS NAME, 4 | B.GRADE, 5 | A.MARKS 6 | FROM STUDENTS A 7 | INNER JOIN GRADES B 8 | ON A.MARKS BETWEEN B.MIN_MARK AND B.MAX_MARK 9 | ORDER BY 10 | B.GRADE DESC, NAME, A.MARKS -------------------------------------------------------------------------------- /tasks/5.md: -------------------------------------------------------------------------------- 1 | ### Атрибуты японских городов [Japanese Cities' Attributes] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query all attributes of every Japanese city in the CITY table. The COUNTRYCODE for Japan is JPN. 7 | The CITY table is described as follows: 8 | 9 | 10 | #### рус: 11 | Запросите все атрибуты каждого японского города в таблице CITY. КОД СТРАНЫ для Японии — JPN. 12 | Таблица CITY описывается следующим образом: 13 | 14 | 15 | #### код с пояснениями: 16 | ```sql 17 | SELECT * /* выбрать данные всех столбцов */ 18 | FROM CITY /* из таблицы */ 19 | WHERE COUNTRYCODE = 'JPN' /* где условие */ 20 | ``` 21 | 22 | #### код для hackerrank 23 | ```sql 24 | SELECT * FROM CITY WHERE COUNTRYCODE = 'JPN' 25 | ``` 26 | 27 | 28 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 29 | 30 | --- -------------------------------------------------------------------------------- /tasks/5.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM CITY WHERE COUNTRYCODE = 'JPN' -------------------------------------------------------------------------------- /tasks/50.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Julia just finished conducting a coding contest, and she needs your help assembling the leaderboard! Write a query 7 | to print the respective hacker_id and name of hackers who achieved full scores for more than one challenge. Order 8 | your output in descending order by the total number of challenges in which the hacker earned a full score. If more 9 | than one hacker received full scores in same number of challenges, then sort them by ascending hacker_id. 10 | 11 | 12 | #### рус: 13 | Джулия только что закончила соревнование по программированию, и ей нужна твоя помощь в составлении таблицы лидеров! 14 | Напишите запрос для вывода соответствующего hacker_id и имен хакеров, набравших максимальное количество баллов за 15 | более чем одну задачу. Упорядочите результат в порядке убывания общего количества испытаний, в которых хакер 16 | заработал полный балл. Если несколько хакеров получили полные баллы за одинаковое количество испытаний, отсортируйте 17 | их по возрастанию hacker_id. 18 | 19 | 20 | #### код с коментариями: 21 | ```sql 22 | SELECT /* выбрать данные */ 23 | h.hacker_id, /* столбец */ 24 | h.name /* столбец */ 25 | FROM Submissions s /* из таблицы */ 26 | INNER JOIN Challenges c on s.challenge_id = c.challenge_id /* объединенная с таблицей по столбцу */ 27 | INNER JOIN Difficulty d on d.difficulty_level = c.difficulty_level /* объединенная с таблицей по столбцу */ 28 | INNER JOIN Hackers h on s.hacker_id = h.hacker_id /* объединенная с таблицей по столбцу */ 29 | WHERE d.score = s.score /* где условие */ 30 | GROUP BY h.hacker_id,h.name /* сгруппировать по */ 31 | HAVING COUNT(s.hacker_id) > 1 /* где условие */ 32 | ORDER BY COUNT(s.challenge_id) desc,s.hacker_id; /* отсортировать по */ 33 | ``` 34 | 35 | #### код для hackerrank: 36 | ```sql 37 | SELECT 38 | h.hacker_id, 39 | h.name 40 | FROM Submissions s 41 | INNER JOIN Challenges c on s.challenge_id = c.challenge_id 42 | INNER JOIN Difficulty d on d.difficulty_level = c.difficulty_level 43 | INNER JOIN Hackers h on s.hacker_id = h.hacker_id 44 | WHERE d.score = s.score 45 | GROUP BY h.hacker_id,h.name 46 | HAVING COUNT(s.hacker_id) > 1 47 | ORDER BY COUNT(s.challenge_id) desc,s.hacker_id; 48 | ``` 49 | 50 | 51 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 52 | 53 | --- -------------------------------------------------------------------------------- /tasks/50.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | h.hacker_id, 3 | h.name 4 | FROM Submissions s 5 | INNER JOIN Challenges c on s.challenge_id = c.challenge_id 6 | INNER JOIN Difficulty d on d.difficulty_level = c.difficulty_level 7 | INNER JOIN Hackers h on s.hacker_id = h.hacker_id 8 | WHERE d.score = s.score 9 | GROUP BY h.hacker_id,h.name 10 | HAVING COUNT(s.hacker_id) > 1 11 | ORDER BY COUNT(s.challenge_id) desc,s.hacker_id; -------------------------------------------------------------------------------- /tasks/51.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Harry Potter and his friends are at Ollivander's with Ron, finally replacing Charlie's old broken wand. 7 | 8 | Hermione decides the best way to choose is by determining the minimum number of gold galleons needed to buy each 9 | non-evil wand of high power and age. Write a query to print the id, age, coins_needed, and power of the wands that 10 | Ron's interested in, sorted in order of descending power. If more than one wand has same power, sort the result in 11 | order of descending age. 12 | 13 | 14 | #### рус: 15 | Гарри Поттер и его друзья находятся у Олливандера с Роном, наконец заменяя старую сломанную палочку Чарли. 16 | 17 | Гермиона решает, что лучший способ сделать выбор — определить минимальное количество золотых галеонов, необходимое 18 | для покупки каждой незлой палочки большой силы и возраста. Напишите запрос для вывода идентификатора, возраста, 19 | требуемых монет и мощности жезлов, которые интересуют Рона, отсортированных в порядке убывания мощности. Если 20 | несколько жезлов имеют одинаковую силу, отсортируйте результат в порядке убывания возраста. 21 | 22 | 23 | #### код с коментариями: 24 | ```sql 25 | SELECT /* выбрать данные */ 26 | id, /* столбец */ 27 | age, /* столбец */ 28 | coins_needed, /* столбец */ 29 | power /* столбец */ 30 | FROM WANDS AS W INNER JOIN WANDS_PROPERTY AS P /* из таблицы объединенной с таблицей */ 31 | ON W.code = P.code /* по столбцу */ 32 | WHERE P.is_evil = 0 AND /* где условие1 и */ 33 | W.coins_needed = (SELECT MIN(coins_needed) /* условие 2 */ 34 | FROM WANDS AS W1 INNER JOIN WANDS_PROPERTY AS P1 35 | ON W1.code = P1.code 36 | WHERE W.power = W1.power AND P.age = P1.age) 37 | ORDER BY W.POWER DESC, P.AGE DESC; /* отсортировать по */ 38 | ``` 39 | 40 | #### код для hackerrank: 41 | ```sql 42 | SELECT 43 | id, 44 | age, 45 | coins_needed, 46 | power 47 | FROM WANDS AS W INNER JOIN WANDS_PROPERTY AS P 48 | ON W.code = P.code 49 | WHERE P.is_evil = 0 AND 50 | W.coins_needed = (SELECT MIN(coins_needed) 51 | FROM WANDS AS W1 INNER JOIN WANDS_PROPERTY AS P1 52 | ON W1.code = P1.code 53 | WHERE W.power = W1.power AND P.age = P1.age) 54 | ORDER BY W.POWER DESC, P.AGE DESC; 55 | ``` 56 | 57 | 58 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 59 | 60 | --- -------------------------------------------------------------------------------- /tasks/51.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | id, 3 | age, 4 | coins_needed, 5 | power 6 | FROM WANDS AS W INNER JOIN WANDS_PROPERTY AS P 7 | ON W.code = P.code 8 | WHERE P.is_evil = 0 AND 9 | W.coins_needed = (SELECT MIN(coins_needed) 10 | FROM WANDS AS W1 INNER JOIN WANDS_PROPERTY AS P1 11 | ON W1.code = P1.code 12 | WHERE W.power = W1.power AND P.age = P1.age) 13 | ORDER BY W.POWER DESC, P.AGE DESC; -------------------------------------------------------------------------------- /tasks/52.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Julia asked her students to create some coding challenges. Write a query to print the hacker_id, name, and the total 7 | number of challenges created by each student. Sort your results by the total number of challenges in descending 8 | order. If more than one student created the same number of challenges, then sort the result by hacker_id. If more 9 | than one student created the same number of challenges and the count is less than the maximum number of challenges 10 | created, then exclude those students from the result. 11 | 12 | 13 | #### рус: 14 | Джулия попросила своих учеников создать несколько задач по программированию. Напишите запрос, чтобы вывести 15 | hacker_id, имя и общее количество задач, созданных каждым учеником. Отсортируйте результаты по общему количеству 16 | задач в порядке убывания. Если более одного ученика создали одинаковое количество задач, отсортируйте результат по 17 | hacker_id. Если более одного учащегося создали одинаковое количество задач, а их количество меньше максимального 18 | количества созданных задач, то эти учащиеся исключаются из результатов. 19 | 20 | 21 | #### код с коментариями: 22 | ```sql 23 | WITH count_challenge AS ( /* создадим временную таблицу */ 24 | SELECT /* выбрать данные */ 25 | Hackers.hacker_id, /* столбец */ 26 | name, /* столбец */ 27 | COUNT(challenge_id) AS num_of_chal /* столбец */ 28 | FROM Hackers, Challenges /* из таблицы */ 29 | WHERE Hackers.hacker_id = Challenges.hacker_id /* где условие */ 30 | GROUP BY Hackers.hacker_id, name), /* сгруппировать по столбцу */ 31 | max_challenge AS ( 32 | SELECT /* выбрать данные */ 33 | MAX(count_challenge.num_of_chal) AS max_count /* столбец */ 34 | FROM count_challenge), /* из таблицы */ 35 | count_num_challenge AS ( 36 | SELECT /* выбрать данные */ 37 | DISTINCT num_of_chal, /* столбец */ 38 | COUNT(num_of_chal) AS count_num /* столбец */ 39 | FROM count_challenge /* из таблицы */ 40 | GROUP BY num_of_chal /* сгруппировать по столбцу */ 41 | ) 42 | 43 | SELECT /* выбрать данные */ 44 | Hackers.hacker_id, /* столбец */ 45 | Hackers.name, /* столбец */ 46 | cc.num_of_chal /* столбец */ 47 | FROM Hackers, count_challenge cc, count_num_challenge cnc, max_challenge /* из таблицы */ 48 | WHERE Hackers.hacker_id = cc.hacker_id && /* где условие */ 49 | cc.num_of_chal = cnc.num_of_chal && 50 | (count_num > 1 && cnc.num_of_chal = max_challenge.max_count || count_num = 1) 51 | ORDER BY num_of_chal DESC, hacker_id; /* отсортировть по */ 52 | ``` 53 | 54 | #### код для hackerrank: 55 | ```sql 56 | WITH count_challenge AS ( 57 | SELECT 58 | Hackers.hacker_id, 59 | name, 60 | COUNT(challenge_id) AS num_of_chal 61 | FROM Hackers, Challenges 62 | WHERE Hackers.hacker_id = Challenges.hacker_id 63 | GROUP BY Hackers.hacker_id, name), 64 | max_challenge AS ( 65 | SELECT 66 | MAX(count_challenge.num_of_chal) AS max_count 67 | FROM count_challenge), 68 | count_num_challenge AS ( 69 | SELECT 70 | DISTINCT num_of_chal, 71 | COUNT(num_of_chal) AS count_num 72 | FROM count_challenge 73 | GROUP BY num_of_chal 74 | ) 75 | 76 | SELECT 77 | Hackers.hacker_id, 78 | Hackers.name, 79 | cc.num_of_chal 80 | FROM Hackers, count_challenge cc, count_num_challenge cnc, max_challenge 81 | WHERE Hackers.hacker_id = cc.hacker_id && 82 | cc.num_of_chal = cnc.num_of_chal && 83 | (count_num > 1 && cnc.num_of_chal = max_challenge.max_count || count_num = 1) 84 | ORDER BY num_of_chal DESC, hacker_id; 85 | ``` 86 | 87 | 88 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 89 | 90 | --- -------------------------------------------------------------------------------- /tasks/52.sql: -------------------------------------------------------------------------------- 1 | WITH count_challenge AS ( 2 | SELECT 3 | Hackers.hacker_id, 4 | name, 5 | COUNT(challenge_id) AS num_of_chal 6 | FROM Hackers, Challenges 7 | WHERE Hackers.hacker_id = Challenges.hacker_id 8 | GROUP BY Hackers.hacker_id, name), 9 | max_challenge AS ( 10 | SELECT 11 | MAX(count_challenge.num_of_chal) AS max_count 12 | FROM count_challenge), 13 | count_num_challenge AS ( 14 | SELECT 15 | DISTINCT num_of_chal, 16 | COUNT(num_of_chal) AS count_num 17 | FROM count_challenge 18 | GROUP BY num_of_chal 19 | ) 20 | 21 | SELECT 22 | Hackers.hacker_id, 23 | Hackers.name, 24 | cc.num_of_chal 25 | FROM Hackers, count_challenge cc, count_num_challenge cnc, max_challenge 26 | WHERE Hackers.hacker_id = cc.hacker_id && 27 | cc.num_of_chal = cnc.num_of_chal && 28 | (count_num > 1 && cnc.num_of_chal = max_challenge.max_count || count_num = 1) 29 | ORDER BY num_of_chal DESC, hacker_id; -------------------------------------------------------------------------------- /tasks/53.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | P(R) represents a pattern drawn by Julia in R rows. The following pattern represents P(5): 7 | 8 | 9 | Write a query to print the pattern P(20). 10 | 11 | 12 | #### рус: 13 | P(R) представляет узор, нарисованный Джулией в R рядах. Следующий шаблон представляет P(5): 14 | 15 | 16 | Напишите запрос для печати шаблона P(20). 17 | 18 | 19 | #### код с коментариями: 20 | ```sql 21 | WITH RECURSIVE CTE AS ( /* создадим временную таблицу */ 22 | SELECT /* выбрать данные */ 23 | 20 AS U /* столбец */ 24 | UNION ALL /* объединить все */ 25 | SELECT /* выбрать данные */ 26 | U - 1 AS U /* столбец */ 27 | FROM CTE WHERE U > 1 /* из таблицы */ 28 | ) 29 | SELECT /* выбрать данные */ 30 | REPEAT('* ', U) /* повторить */ 31 | FROM CTE; /* из таблицы */ 32 | ``` 33 | 34 | #### код для hackerrank: 35 | ```sql 36 | WITH RECURSIVE CTE AS ( 37 | SELECT 38 | 20 AS U 39 | UNION ALL 40 | SELECT 41 | U - 1 AS U 42 | FROM CTE WHERE U > 1 43 | ) 44 | SELECT 45 | REPEAT('* ', U) 46 | FROM CTE; 47 | ``` 48 | 49 | 50 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 51 | 52 | --- -------------------------------------------------------------------------------- /tasks/53.sql: -------------------------------------------------------------------------------- 1 | WITH RECURSIVE CTE AS ( 2 | SELECT 3 | 20 AS U 4 | UNION ALL 5 | SELECT 6 | U - 1 AS U 7 | FROM CTE WHERE U > 1 8 | ) 9 | SELECT 10 | REPEAT('* ', U) 11 | FROM CTE; -------------------------------------------------------------------------------- /tasks/54.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | P(R) represents a pattern drawn by Julia in R rows. The following pattern represents P(5): 7 | 8 | Write a query to print the pattern P(20). 9 | 10 | 11 | #### рус: 12 | P(R) представляет узор, нарисованный Джулией в R рядах. Следующий шаблон представляет P(5): 13 | 14 | Напишите запрос для печати шаблона P(20). 15 | 16 | 17 | #### код с коментариями: 18 | ```sql 19 | WITH recursive temp_table AS ( /* создадим временную таблицу */ 20 | SELECT /* выбрать данные */ 21 | 1 AS u, /* столбец */ 22 | CAST('*' as CHAR(50)) AS result /* столбец */ 23 | UNION ALL /* объединить все */ 24 | SELECT u + 1, /* выбрать данные */ 25 | repeat('* ', u + 1) AS result /* повторить */ 26 | FROM temp_table WHERE u < 20 /* из таблицы */ 27 | ) 28 | 29 | SELECT result FROM temp_table; 30 | ``` 31 | 32 | #### код для hackerrank: 33 | ```sql 34 | WITH recursive temp_table AS ( 35 | SELECT 36 | 1 AS u, 37 | CAST('*' as CHAR(50)) AS result 38 | UNION ALL 39 | SELECT u + 1, 40 | repeat('* ', u + 1) AS result 41 | FROM temp_table WHERE u < 20 42 | ) 43 | 44 | SELECT result FROM temp_table; 45 | ``` 46 | 47 | 48 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 49 | 50 | --- -------------------------------------------------------------------------------- /tasks/54.sql: -------------------------------------------------------------------------------- 1 | WITH recursive temp_table AS ( 2 | SELECT 3 | 1 AS u, 4 | CAST('*' as CHAR(50)) AS result 5 | UNION ALL 6 | SELECT u + 1, 7 | repeat('* ', u + 1) AS result 8 | FROM temp_table WHERE u < 20 9 | ) 10 | 11 | SELECT result FROM temp_table; -------------------------------------------------------------------------------- /tasks/55.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Write a query to print all prime numbers less than or equal to . Print your result on a single line, and use the ampersand () character as your separator (instead of a space). 7 | 8 | For example, the output for all prime numbers would be: 9 | 10 | 11 | #### рус: 12 | Напишите запрос, чтобы вывести все простые числа, меньшие или равные . Выведите результат в одну строку и используйте символ амперсанда () в качестве разделителя (вместо пробела). 13 | 14 | Например, вывод для всех простых чисел будет таким: 15 | 16 | 17 | #### код с коментариями: 18 | ```sql 19 | SELECT 20 | CONCAT(2, '&', REPLACE(GROUP_CONCAT(T2.n ORDER BY T2.n), ',', '&')) 21 | FROM 22 | ( SELECT 23 | T.n FROM ( WITH recursive counter AS ( 24 | SELECT 25 | 2 AS n 26 | UNION SELECT 27 | n + 1 28 | FROM counter 29 | WHERE n < 1000 ) 30 | SELECT 31 | c1.n AS n, 32 | MOD(c1.n, c2.n) AS r 33 | FROM counter AS c1, 34 | counter AS c2 35 | WHERE c1.n > c2.n ) AS T 36 | GROUP BY T.n 37 | HAVING MIN(T.r) > 0 38 | ORDER BY T.n ) AS T2; 39 | 40 | ``` 41 | 42 | #### код для hackerrank: 43 | ```sql 44 | SELECT 45 | CONCAT(2, '&', REPLACE(GROUP_CONCAT(T2.n ORDER BY T2.n), ',', '&')) 46 | FROM 47 | ( SELECT 48 | T.n FROM ( WITH recursive counter AS ( 49 | SELECT 50 | 2 AS n 51 | UNION SELECT 52 | n + 1 53 | FROM counter 54 | WHERE n < 1000 ) 55 | SELECT 56 | c1.n AS n, 57 | MOD(c1.n, c2.n) AS r 58 | FROM counter AS c1, 59 | counter AS c2 60 | WHERE c1.n > c2.n ) AS T 61 | GROUP BY T.n 62 | HAVING MIN(T.r) > 0 63 | ORDER BY T.n ) AS T2; 64 | 65 | ``` 66 | 67 | 68 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 69 | 70 | --- -------------------------------------------------------------------------------- /tasks/55.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | CONCAT(2, '&', REPLACE(GROUP_CONCAT(T2.n ORDER BY T2.n), ',', '&')) 3 | FROM 4 | ( SELECT 5 | T.n FROM ( WITH recursive counter AS ( 6 | SELECT 7 | 2 AS n 8 | UNION SELECT 9 | n + 1 10 | FROM counter 11 | WHERE n < 1000 ) 12 | SELECT 13 | c1.n AS n, 14 | MOD(c1.n, c2.n) AS r 15 | FROM counter AS c1, 16 | counter AS c2 17 | WHERE c1.n > c2.n ) AS T 18 | GROUP BY T.n 19 | HAVING MIN(T.r) > 0 20 | ORDER BY T.n ) AS T2; 21 | -------------------------------------------------------------------------------- /tasks/56.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | Julia conducted a days of learning SQL contest. The start date of the contest was March 01, 2016 and the end date was March 15, 2016. 7 | 8 | Write a query to print total number of unique hackers who made at least submission each day (starting on the first 9 | day of the contest), and find the hacker_id and name of the hacker who made maximum number of submissions each day. 10 | If more than one such hacker has a maximum number of submissions, print the lowest hacker_id. The query should print 11 | this information for each day of the contest, sorted by the date. 12 | 13 | 14 | #### рус: 15 | Юлия провела конкурс дней обучения SQL. Дата начала конкурса 01.03.2016, дата окончания 15.03.2016. 16 | 17 | Напишите запрос для вывода общего количества уникальных хакеров, которые делали как минимум сабмиты каждый день 18 | (начиная с первого дня конкурса), и найдите hacker_id и имя хакера, который сделал максимальное количество сабмитов 19 | каждый день. Если более одного такого хакера имеют максимальное количество представлений, выведите наименьший 20 | hacker_id. Запрос должен вывести эту информацию для каждого дня конкурса, отсортированного по дате. 21 | 22 | 23 | #### код с коментариями: 24 | ```sql 25 | SELECT 26 | b.submission_date, COALESCE(a.contSub,0), b.id, c.name 27 | FROM ( 28 | SELECT o.submission_date, MIN(o.hacker_id) AS id 29 | FROM ( 30 | SELECT n.submission_date, n.hacker_id,COUNT(n.submission_id) 31 | FROM Submissions n 32 | GROUP BY submission_date, hacker_id 33 | HAVING COUNT(submission_id)>= ALL( 34 | SELECT COUNT(m.submission_id) 35 | FROM Submissions m 36 | GROUP BY m.submission_date, m.hacker_id 37 | HAVING m.submission_date=n.submission_date 38 | ) 39 | ) AS o 40 | GROUP BY submission_date 41 | ) AS b 42 | LEFT JOIN ( 43 | SELECT aa.submission_date, COUNT(DISTINCT aa.hacker_id) AS contSub 44 | FROM Submissions AS aa 45 | WHERE aa.submission_date='2016-03-01' 46 | OR submission_date STR_TO_DATE('2016-03-01', '%Y-%m-%d') AND bb.SubmittedYtd IS NULL 55 | ) 56 | GROUP BY aa.submission_date 57 | ) AS a 58 | ON a.submission_date=b.submission_date 59 | JOIN Hackers c ON b.id=c.hacker_id 60 | ORDER BY a.submission_date ASC 61 | ``` 62 | 63 | #### код для hackerrank: 64 | ```sql 65 | SELECT 66 | b.submission_date, COALESCE(a.contSub,0), b.id, c.name 67 | FROM ( 68 | SELECT o.submission_date, MIN(o.hacker_id) AS id 69 | FROM ( 70 | SELECT n.submission_date, n.hacker_id,COUNT(n.submission_id) 71 | FROM Submissions n 72 | GROUP BY submission_date, hacker_id 73 | HAVING COUNT(submission_id)>= ALL( 74 | SELECT COUNT(m.submission_id) 75 | FROM Submissions m 76 | GROUP BY m.submission_date, m.hacker_id 77 | HAVING m.submission_date=n.submission_date 78 | ) 79 | ) AS o 80 | GROUP BY submission_date 81 | ) AS b 82 | LEFT JOIN ( 83 | SELECT aa.submission_date, COUNT(DISTINCT aa.hacker_id) AS contSub 84 | FROM Submissions AS aa 85 | WHERE aa.submission_date='2016-03-01' 86 | OR submission_date STR_TO_DATE('2016-03-01', '%Y-%m-%d') AND bb.SubmittedYtd IS NULL 95 | ) 96 | GROUP BY aa.submission_date 97 | ) AS a 98 | ON a.submission_date=b.submission_date 99 | JOIN Hackers c ON b.id=c.hacker_id 100 | ORDER BY a.submission_date ASC 101 | ``` 102 | 103 | 104 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 105 | 106 | --- -------------------------------------------------------------------------------- /tasks/56.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | b.submission_date, COALESCE(a.contSub,0), b.id, c.name 3 | FROM ( 4 | SELECT o.submission_date, MIN(o.hacker_id) AS id 5 | FROM ( 6 | SELECT n.submission_date, n.hacker_id,COUNT(n.submission_id) 7 | FROM Submissions n 8 | GROUP BY submission_date, hacker_id 9 | HAVING COUNT(submission_id)>= ALL( 10 | SELECT COUNT(m.submission_id) 11 | FROM Submissions m 12 | GROUP BY m.submission_date, m.hacker_id 13 | HAVING m.submission_date=n.submission_date 14 | ) 15 | ) AS o 16 | GROUP BY submission_date 17 | ) AS b 18 | LEFT JOIN ( 19 | SELECT aa.submission_date, COUNT(DISTINCT aa.hacker_id) AS contSub 20 | FROM Submissions AS aa 21 | WHERE aa.submission_date='2016-03-01' 22 | OR submission_date STR_TO_DATE('2016-03-01', '%Y-%m-%d') AND bb.SubmittedYtd IS NULL 31 | ) 32 | GROUP BY aa.submission_date 33 | ) AS a 34 | ON a.submission_date=b.submission_date 35 | JOIN Hackers c ON b.id=c.hacker_id 36 | ORDER BY a.submission_date ASC -------------------------------------------------------------------------------- /tasks/57.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | You are given a table, Projects, containing three columns: Task_ID, Start_Date and End_Date. It is guaranteed that the difference between the End_Date and the Start_Date is equal to 1 day for each row in the table. 7 | 8 | 9 | 10 | If the End_Date of the tasks are consecutive, then they are part of the same project. Samantha is interested in finding the total number of different projects completed. 11 | 12 | Write a query to output the start and end dates of projects listed by the number of days it took to complete the 13 | project in ascending order. If there is more than one project that have the same number of completion days, then 14 | order by the start date of the project. 15 | 16 | 17 | #### рус: 18 | Вам дана таблица Projects, содержащая три столбца: Task_ID, Start_Date и End_Date. Гарантируется, что разница между End_Date и Start_Date равна 1 дню для каждой строки в таблице. 19 | 20 | 21 | 22 | Если End_Date задач совпадают, то они являются частью одного и того же проекта. Саманте интересно узнать общее количество завершенных различных проектов. 23 | 24 | Напишите запрос для вывода дат начала и окончания проектов, перечисленных по количеству дней, затраченных на 25 | выполнение проекта, в порядке возрастания. Если имеется более одного проекта с одинаковым количеством дней 26 | завершения, заказывайте по дате начала проекта. 27 | 28 | 29 | #### код с коментариями: 30 | ```sql 31 | /* Этот внешний запрос предназначен только для упорядочения по продолжительности проекта */ 32 | SELECT 33 | P3.sd,P3.ed 34 | FROM 35 | (SELECT 36 | MIN(P1.Start_Date) AS sd, 37 | P2.End_Date AS ed 38 | FROM Projects AS P1 39 | INNER JOIN Projects AS P2 40 | ON p2.End_Date 41 | NOT IN (SELECT 42 | Start_Date 43 | FROM Projects) 44 | /*мы исключаем даты окончания, существующие на Start_Date, что означает, что они являются частью одного и того же проекта*/ 45 | AND 46 | /*Как только мы нашли дату окончания, не совпадающую с любой из дат начала, мы проверяем в обратном порядке, сколько других столбцов есть 47 | в течение одного и того же промежутка времени считайте их первыми, если число равно разнице в днях, что означает, что они на самом деле 48 | связаны. Используйте «группировать по» End_date с MIN(), чтобы найти самую раннюю дату начала, которая связана */ 49 | (SELECT 50 | COUNT(*) 51 | FROM Projects 52 | WHERE Start_Date BETWEEN P1.Start_Date AND P2.End_Date ) = DATEDIFF(P2.End_Date,P1.Start_Date) 53 | GROUP BY P2.End_Date) AS P3 54 | ORDER by DATEDIFF(P3.ed, P3.sd), P3.sd ; 55 | ``` 56 | 57 | #### код для hackerrank: 58 | ```sql 59 | SELECT 60 | P3.sd,P3.ed 61 | FROM 62 | (SELECT 63 | MIN(P1.Start_Date) AS sd, 64 | P2.End_Date AS ed 65 | FROM Projects AS P1 66 | INNER JOIN Projects AS P2 67 | ON p2.End_Date 68 | NOT IN (SELECT 69 | Start_Date 70 | FROM Projects) 71 | AND 72 | (SELECT 73 | COUNT(*) 74 | FROM Projects 75 | WHERE Start_Date BETWEEN P1.Start_Date AND P2.End_Date ) = DATEDIFF(P2.End_Date,P1.Start_Date) 76 | GROUP BY P2.End_Date) AS P3 77 | ORDER by DATEDIFF(P3.ed, P3.sd), P3.sd ; 78 | ``` 79 | 80 | 81 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 82 | 83 | --- -------------------------------------------------------------------------------- /tasks/57.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | P3.sd,P3.ed 3 | FROM 4 | (SELECT 5 | MIN(P1.Start_Date) AS sd, 6 | P2.End_Date AS ed 7 | FROM Projects AS P1 8 | INNER JOIN Projects AS P2 9 | ON p2.End_Date 10 | NOT IN (SELECT 11 | Start_Date 12 | FROM Projects) 13 | AND 14 | (SELECT 15 | COUNT(*) 16 | FROM Projects 17 | WHERE Start_Date BETWEEN P1.Start_Date AND P2.End_Date ) = DATEDIFF(P2.End_Date,P1.Start_Date) 18 | GROUP BY P2.End_Date) AS P3 19 | ORDER by DATEDIFF(P3.ed, P3.sd), P3.sd ; -------------------------------------------------------------------------------- /tasks/58.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | You are given three tables: Students, Friends and Packages. Students contains two columns: ID and Name. Friends contains two columns: ID and Friend_ID (ID of the ONLY best friend). Packages contains two columns: ID and Salary (offered salary in $ thousands per month). 7 | 8 | 9 | 10 | Write a query to output the names of those students whose best friends got offered a higher salary than them. Names 11 | must be ordered by the salary amount offered to the best friends. It is guaranteed that no two students got same 12 | salary offer. 13 | 14 | 15 | #### рус: 16 | Вам дается три таблицы: Студенты, Друзья и Пакеты. Студенты содержит два столбца: идентификатор и имя. Друзья содержит две колонки: ID и Friend_ID (ID ЕДИНСТВЕННОГО лучшего друга). Пакеты содержат две колонки: ID и Salary (предлагаемая зарплата в тысячах долларов в месяц). 17 | 18 | 19 | 20 | Напишите запрос для вывода имен тех студентов, чьим лучшим друзьям предложили более высокую зарплату, чем они. Имена 21 | должны быть упорядочены по сумме зарплаты, предлагаемой лучшим друзьям. Гарантируется, что никакие два студента не 22 | получили одинаковое предложение по зарплате. 23 | 24 | 25 | #### код с коментариями: 26 | ```sql 27 | SELECT std.name 28 | FROM students std 29 | JOIN friends frnd ON std.id=frnd.id 30 | JOIN packages std_pkg ON std.id=std_pkg.id 31 | JOIN packages frnd_pkg ON frnd.friend_id=frnd_pkg.id 32 | WHERE frnd_pkg.salary > std_pkg.salary 33 | ORDER BY frnd_pkg.salary; 34 | ``` 35 | 36 | #### код для hackerrank: 37 | ```sql 38 | SELECT std.name 39 | FROM students std 40 | JOIN friends frnd ON std.id=frnd.id 41 | JOIN packages std_pkg ON std.id=std_pkg.id 42 | JOIN packages frnd_pkg ON frnd.friend_id=frnd_pkg.id 43 | WHERE frnd_pkg.salary > std_pkg.salary 44 | ORDER BY frnd_pkg.salary; 45 | ``` 46 | 47 | 48 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 49 | 50 | --- -------------------------------------------------------------------------------- /tasks/58.sql: -------------------------------------------------------------------------------- 1 | SELECT std.name 2 | FROM students std 3 | JOIN friends frnd ON std.id=frnd.id 4 | JOIN packages std_pkg ON std.id=std_pkg.id 5 | JOIN packages frnd_pkg ON frnd.friend_id=frnd_pkg.id 6 | WHERE frnd_pkg.salary > std_pkg.salary 7 | ORDER BY frnd_pkg.salary; -------------------------------------------------------------------------------- /tasks/59.md: -------------------------------------------------------------------------------- 1 | ### 2 | 3 | solution 4 | 5 | #### eng: 6 | You are given a table, Functions, containing two columns: X and Y. 7 | 8 | Two pairs (X1, Y1) and (X2, Y2) are said to be symmetric pairs if X1 = Y2 and X2 = Y1. 9 | 10 | Write a query to output all such symmetric pairs in ascending order by the value of X. List the rows such that X1 ≤ Y1. 11 | 12 | 13 | #### рус: 14 | Вам дана таблица «Функции», содержащая два столбца: X и Y. 15 | 16 | Две пары (X1, Y1) и (X2, Y2) называются симметричными парами, если X1 = Y2 и X2 = Y1. 17 | 18 | Напишите запрос, чтобы вывести все такие симметричные пары в порядке возрастания значения X. Перечислите строки, такие что X1 ≤ Y1. 19 | 20 | #### код с коментариями: 21 | ```sql 22 | SELECT f1.x, f1.y from functions f1 23 | INNER JOIN functions f2 24 | WHERE (f2.x = f1.y) 25 | AND (f1.x = f2.y) 26 | GROUP BY f1.x, f1.y 27 | HAVING ((f1.x = f1.y) AND (COUNT(*) > 1)) 28 | OR (f1.x < f1.y) 29 | ORDER BY f1.x; 30 | ``` 31 | 32 | #### код для hackerrank: 33 | ```sql 34 | SELECT f1.x, f1.y from functions f1 35 | INNER JOIN functions f2 36 | WHERE (f2.x = f1.y) 37 | AND (f1.x = f2.y) 38 | GROUP BY f1.x, f1.y 39 | HAVING ((f1.x = f1.y) AND (COUNT(*) > 1)) 40 | OR (f1.x < f1.y) 41 | ORDER BY f1.x; 42 | ``` 43 | 44 | 45 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 46 | 47 | --- -------------------------------------------------------------------------------- /tasks/6.md: -------------------------------------------------------------------------------- 1 | ### Названия японских городов [Japanese Cities' Names] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query the names of all the Japanese cities in the CITY table. The COUNTRYCODE for Japan is JPN. 7 | The CITY table is described as follows: 8 | 9 | 10 | #### рус: 11 | Запросите названия всех японских городов в таблице CITY. КОД СТРАНЫ для Японии — JPN. 12 | Таблица CITY описывается следующим образом: 13 | 14 | 15 | #### код с пояснениями: 16 | ```sql 17 | SELECT NAME /* выбрать данные столбца */ 18 | FROM CITY /* из таблицы */ 19 | WHERE COUNTRYCODE = 'JPN' /* где условие */ 20 | ``` 21 | 22 | #### код для hackerrank: 23 | ```sql 24 | SELECT NAME FROM CITY WHERE COUNTRYCODE = 'JPN' 25 | ``` 26 | 27 | 28 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 29 | 30 | --- -------------------------------------------------------------------------------- /tasks/6.sql: -------------------------------------------------------------------------------- 1 | SELECT NAME FROM CITY WHERE COUNTRYCODE = 'JPN' -------------------------------------------------------------------------------- /tasks/7.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 1 [Weather Observation Station 1] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query a list of CITY and STATE from the STATION table. 7 | The STATION table is described as follows: 8 | 9 | where LAT_N is the northern latitude and LONG_W is the western longitude. 10 | 11 | 12 | #### рус: 13 | Запросите список CITY и STATE из таблицы STATION. 14 | Таблица STATION описывается следующим образом: 15 | 16 | где LAT_N — северная широта, а LONG_W — западная долгота. 17 | 18 | 19 | #### код с пояснениями: 20 | ```sql 21 | SELECT /* выбрать данные */ 22 | CITY, /* столбец */ 23 | STATE /* столбец */ 24 | FROM STATION /* из таблицы */ 25 | ``` 26 | 27 | #### код для hackerrank: 28 | ```sql 29 | SELECT CITY, STATE FROM STATION 30 | ``` 31 | 32 | 33 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 34 | 35 | --- -------------------------------------------------------------------------------- /tasks/7.sql: -------------------------------------------------------------------------------- 1 | SELECT CITY, STATE FROM STATION -------------------------------------------------------------------------------- /tasks/8.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 3 [Weather Observation Station 3] 2 | 3 | solution 4 | 5 | #### eng: 6 | Query a list of CITY names from STATION for cities that have an even ID number. Print the results in any order, but exclude duplicates from the answer. 7 | The STATION table is described as follows: 8 | where LAT_N is the northern latitude and LONG_W is the western longitude. 9 | 10 | 11 | #### рус: 12 | Запросите список названий ГОРОДА из STATION для городов с четным идентификационным номером. Выведите результаты в 13 | любом порядке, но исключите дубликаты из ответа. 14 | Таблица STATION описывается следующим образом: 15 | где LAT_N — северная широта, а LONG_W — западная долгота. 16 | 17 | 18 | #### код с пояснениями: 19 | ```sql 20 | SELECT DISTINCT CITY /* выбрать уникальные значения столбца */ 21 | FROM STATION /* из таблицы */ 22 | WHERE MOD(ID,2)=0 /* где модуль деления на 2 столбца = 0 */ 23 | ``` 24 | 25 | #### код для hackerrank 26 | ```sql 27 | SELECT DISTINCT CITY FROM STATION 28 | WHERE MOD(ID,2)=0 29 | ``` 30 | 31 | ```SQL 32 | SELECT DISTINCT CITY FROM STATION 33 | WHERE ID%2=0 34 | ``` 35 | 36 | 37 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 38 | 39 | --- -------------------------------------------------------------------------------- /tasks/8.sql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT CITY FROM STATION 2 | WHERE MOD(ID,2)=0 -------------------------------------------------------------------------------- /tasks/9.md: -------------------------------------------------------------------------------- 1 | ### Станция наблюдения за погодой 4 [Weather Observation Station 4] 2 | 3 | solution 4 | 5 | #### eng: 6 | Find the difference between the total number of CITY entries in the table and the number of distinct CITY entries in 7 | the table. 8 | The STATION table is described as follows: 9 | 10 | where LAT_N is the northern latitude and LONG_W is the western longitude. 11 | For example, if there are three records in the table with CITY values 'New York', 'New York', 'Bengalaru', there are 12 | 2 different city names: 'New York' and 'Bengalaru'. The query returns , because . 13 | 14 | 15 | #### рус: 16 | Найдите разницу между общим количеством записей CITY в таблице и количеством отдельных записей CITY в таблице. 17 | Таблица STATION описывается следующим образом: 18 | 19 | где LAT_N — северная широта, а LONG_W — западная долгота. 20 | 21 | Например, если в таблице есть три записи со значениями ГОРОД «Нью-Йорк», «Нью-Йорк», «Бенгалару», есть 2 разных названия 22 | города: «Нью-Йорк» и «Бенгалару». Запрос возвращает , потому что . 23 | 24 | 25 | 26 | #### код с пояснениями: 27 | ```sql 28 | SELECT /* выбрать данные */ 29 | -- количество (столбца) минус количество (уникальных значений) 30 | COUNT(CITY) - COUNT(DISTINCT CITY) /* столбец разницы */ 31 | FROM STATION /* из таблицы */ 32 | ``` 33 | 34 | #### код для hackerrank 35 | ```sql 36 | SELECT COUNT(CITY)- COUNT(DISTINCT CITY) FROM STATION 37 | ``` 38 | 39 | 40 | #### На [главную](https://github.com/BEPb/hackerrank_sql#readme) 41 | 42 | --- -------------------------------------------------------------------------------- /tasks/9.sql: -------------------------------------------------------------------------------- 1 | SELECT COUNT(CITY)- COUNT(DISTINCT CITY) FROM STATION -------------------------------------------------------------------------------- /tasks/art/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/1.png -------------------------------------------------------------------------------- /tasks/art/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/10.png -------------------------------------------------------------------------------- /tasks/art/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/11.png -------------------------------------------------------------------------------- /tasks/art/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/12.png -------------------------------------------------------------------------------- /tasks/art/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/13.png -------------------------------------------------------------------------------- /tasks/art/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/14.png -------------------------------------------------------------------------------- /tasks/art/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/15.png -------------------------------------------------------------------------------- /tasks/art/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/16.png -------------------------------------------------------------------------------- /tasks/art/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/17.png -------------------------------------------------------------------------------- /tasks/art/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/18.png -------------------------------------------------------------------------------- /tasks/art/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/19.png -------------------------------------------------------------------------------- /tasks/art/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/2.png -------------------------------------------------------------------------------- /tasks/art/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/20.png -------------------------------------------------------------------------------- /tasks/art/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/21.png -------------------------------------------------------------------------------- /tasks/art/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/22.png -------------------------------------------------------------------------------- /tasks/art/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/23.png -------------------------------------------------------------------------------- /tasks/art/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/24.png -------------------------------------------------------------------------------- /tasks/art/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/25.png -------------------------------------------------------------------------------- /tasks/art/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/26.png -------------------------------------------------------------------------------- /tasks/art/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/27.png -------------------------------------------------------------------------------- /tasks/art/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/28.png -------------------------------------------------------------------------------- /tasks/art/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/29.png -------------------------------------------------------------------------------- /tasks/art/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/3.png -------------------------------------------------------------------------------- /tasks/art/30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/30.png -------------------------------------------------------------------------------- /tasks/art/31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/31.png -------------------------------------------------------------------------------- /tasks/art/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/32.png -------------------------------------------------------------------------------- /tasks/art/33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/33.png -------------------------------------------------------------------------------- /tasks/art/34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/34.png -------------------------------------------------------------------------------- /tasks/art/35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/35.png -------------------------------------------------------------------------------- /tasks/art/36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/36.png -------------------------------------------------------------------------------- /tasks/art/37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/37.png -------------------------------------------------------------------------------- /tasks/art/38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/38.png -------------------------------------------------------------------------------- /tasks/art/39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/39.png -------------------------------------------------------------------------------- /tasks/art/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/4.png -------------------------------------------------------------------------------- /tasks/art/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/40.png -------------------------------------------------------------------------------- /tasks/art/41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/41.png -------------------------------------------------------------------------------- /tasks/art/42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/42.png -------------------------------------------------------------------------------- /tasks/art/44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/44.png -------------------------------------------------------------------------------- /tasks/art/45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/45.png -------------------------------------------------------------------------------- /tasks/art/46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/46.png -------------------------------------------------------------------------------- /tasks/art/47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/47.png -------------------------------------------------------------------------------- /tasks/art/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/48.png -------------------------------------------------------------------------------- /tasks/art/49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/49.png -------------------------------------------------------------------------------- /tasks/art/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/5.png -------------------------------------------------------------------------------- /tasks/art/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/50.png -------------------------------------------------------------------------------- /tasks/art/51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/51.png -------------------------------------------------------------------------------- /tasks/art/52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/52.png -------------------------------------------------------------------------------- /tasks/art/53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/53.png -------------------------------------------------------------------------------- /tasks/art/54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/54.png -------------------------------------------------------------------------------- /tasks/art/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/55.png -------------------------------------------------------------------------------- /tasks/art/56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/56.png -------------------------------------------------------------------------------- /tasks/art/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/57.png -------------------------------------------------------------------------------- /tasks/art/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/58.png -------------------------------------------------------------------------------- /tasks/art/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/6.png -------------------------------------------------------------------------------- /tasks/art/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/7.png -------------------------------------------------------------------------------- /tasks/art/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/8.png -------------------------------------------------------------------------------- /tasks/art/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BEPb/hackerrank_sql/f47b9cb7d6fa11713c8c517e5eeced6fd9e70cca/tasks/art/9.png --------------------------------------------------------------------------------