|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
Всем привет! Есть пара задачек..Нужна помощь в исправлении ошибок решения. В таблице bus_logs хранятся данные о прибытии автобусов на остановки. В поле diff содержится разница в секундах относительно контрольного времени прибытия. Положительные значения говорят о том, что автобус прибыл рано, отрицательные, о том, что он опоздал, 0 – приехал вовремя. Получите список водителей, которые в среднем опаздывают или опережают график на 30 секунд и более. Итоговая таблица должна состоять из двух колонок: driver_id с номером водителя и avg_diff со средним отклонением. Среднее отклонение следует округлить до целого числа. bus_logs id driver_id time diff 1 1 2018-06-14 12:00:44 0 2 2 2018-06-14 12:01:50 33 3 3 2018-06-14 12:04:20 -60 4 4 2018-06-14 12:06:28 5 5 1 2018-06-14 12:08:56 -10 6 2 2018-06-14 12:10:01 -1 7 3 2018-06-14 12:10:01 27 8 4 2018-06-14 12:10:01 30 9 1 2018-06-14 12:10:01 22 10 2 2018-06-14 12:10:01 64 11 3 2018-06-14 12:10:01 -18 12 4 2018-06-14 12:10:01 12 13 1 2018-06-14 12:10:01 -40 14 2 2018-06-14 12:10:01 -40 15 3 2018-06-14 12:10:01 18 16 4 2018-06-14 12:10:01 10 17 1 2018-06-14 12:10:01 12 18 2 2018-06-14 12:10:01 34 19 3 2018-06-14 12:10:01 -42 20 4 2018-06-14 12:10:01 8 21 1 2018-06-14 12:10:01 5 22 2 2018-06-14 12:10:01 27 23 3 2018-06-14 12:10:01 21 24 4 2018-06-14 12:10:01 -4 Решал так: SELECT driver_id, CEILING(AVG(diff)) as avg_diff FROM bus_logs WHERE diff >= 30 GROUP BY driver_id HAVING avg_diff >= 30 Ошибка:Wrong records selected Query result: +-----------+----------+ | driver_id | avg_diff | +-----------+----------+ | 2 | 44 | | 4 | 30 | +-----------+----------+ Affected rows: 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 16:38 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
Вот вторая: В таблице products содержатся данные о товарах с привязками к категориям (category_id). Получите id категорий и количество товаров на складе для каждой из категорий. Выведите только категории в которых есть товары. Данные отсортируйте по количеству товаров. В итоговой таблице должно быть два столбца: category_id и products. products id name count price category_id 1 Сникерс большой 3 56 1 2 Сливочное масло Милка 2 104.4 2 3 Яблоки ред 7 98 3 4 Яблоки голден 3 89 3 5 Марс 7 36.5 1 6 Сметана 20 2 49 2 7 Сметана 15 4 45 2 8 Сметана 20 фермерская 1 78.9 2 9 Апельсины 5 70 3 10 Макароны 1 кг 4 56 4 11 Вода 1 л 12 18 5 12 Гречка 0,5 кг 4 45 4 13 Хлеб былый 7 23.4 8 14 Творог 9 3 56 2 15 Шампунь H&S 0 238 7 16 Баунти 0 38.9 1 17 Батон купеческий 5 34.5 8 18 Говядина 1 308 17 19 Помидоры 8 46 3 20 Индейка 2 534 17 21 Свинина 0 349 17 22 Тарелки 12 шт 0 780 6 23 Кружки 6 шт 0 230 6 Решал так: SELECT category_id, COUNT(count) as products FROM products WHERE count>0 GROUP BY category_id HAVING products>0 ORDER BY products Ошибка: Wrong records selected Query result: +-------------+----------+ | category_id | products | +-------------+----------+ | 5 | 1 | | 1 | 2 | | 4 | 2 | | 8 | 2 | | 17 | 2 | | 3 | 4 | | 2 | 5 | +-------------+----------+ Affected rows: 7 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 16:40 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
Lugner32список водителей, которые в среднем опаздывают или опережают график на 30 секунд и более. С к такой задаче условия diff >= 30 и avg_diff >= 30 выборки не годятся ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 16:53 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
vkle, Спасибо за подсказку))) SELECT driver_id, ROUND(AVG(ABS(diff)),0) as avg_diff FROM bus_logs GROUP BY driver_id HAVING avg_diff >= 30 AND avg_diff >= -30 Такое решение помогло))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 17:12 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
Lugner32Вот вторая: В таблице products содержатся данные о товарах с привязками к категориям (category_id). Получите id категорий и количество товаров на складе для каждой из категорий. Выведите только категории в которых есть товары. Данные отсортируйте по количеству товаров. В итоговой таблице должно быть два столбца: category_id и products. products id name count price category_id 1 Сникерс большой 3 56 1 2 Сливочное масло Милка 2 104.4 2 3 Яблоки ред 7 98 3 4 Яблоки голден 3 89 3 5 Марс 7 36.5 1 6 Сметана 20 2 49 2 7 Сметана 15 4 45 2 8 Сметана 20 фермерская 1 78.9 2 9 Апельсины 5 70 3 10 Макароны 1 кг 4 56 4 11 Вода 1 л 12 18 5 12 Гречка 0,5 кг 4 45 4 13 Хлеб былый 7 23.4 8 14 Творог 9 3 56 2 15 Шампунь H&S 0 238 7 16 Баунти 0 38.9 1 17 Батон купеческий 5 34.5 8 18 Говядина 1 308 17 19 Помидоры 8 46 3 20 Индейка 2 534 17 21 Свинина 0 349 17 22 Тарелки 12 шт 0 780 6 23 Кружки 6 шт 0 230 6 Решал так: SELECT category_id, COUNT(count) as products FROM products WHERE count>0 GROUP BY category_id HAVING products>0 ORDER BY products Ошибка: Wrong records selected Query result: +-------------+----------+ | category_id | products | +-------------+----------+ | 5 | 1 | | 1 | 2 | | 4 | 2 | | 8 | 2 | | 17 | 2 | | 3 | 4 | | 2 | 5 | +-------------+----------+ Affected rows: 7 Такое решение помогло ))) SELECT category_id, SUM(count) as products FROM products WHERE count>0 GROUP BY category_id HAVING products>0 ORDER BY products ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 17:17 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
Lugner32avg_diff >= 30 AND avg_diff >= -30 Эквивалентно avg_diff >= 30 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 18:19 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
vkle, Т.е зря удлинял запрос? Однако помогло же и ответ был засчитан))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 18:24 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
Lugner32, Графоманство это. Добавьте ещё пять или двадцать аналогичных бестолковых условий - результат не изменится. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 20:25 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
vkle, я понял Вас)) спасибо за помощь и наставления)) Я не волшебник, я только учусь©«Золушка»:-) Впредь учту и буду знать)))Собственно зайтись я и обратился. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 21:45 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
Lugner32Однако помогло же и ответ был засчитан)))Преподаватель - безграмотен? запрос-то заведомо неверный, и вообще не соответствует тексту задания. Lugner32Такое решение помогло )))И тоже - ответ неверный, ибо не соответствует условию задания. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 07:29 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
Akina,Об этом я не могу судить. Так как не профессионален в этом. В его профиле написано что стаж работы более 10 лет и он участник различных олимпиад и основатель собственного учебного онлайн сервиса. ( что то типа того))) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 07:53 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
Помогите плиз с ещё одной задачкой)) тут что то я вообще подвис. По теме «объединение с помощью UNION)) После слияния двух компаний, IT отделу поручили объединение баз данных. Слейте users и members в единую таблицу со следующими столбцами: id — идентификатор пользователя. Так как идентификаторы пользователей в таблицах одинаковые, то примените к ним следующую формулу id * 10 + N, где N – равен одному для таблицы users и двум для members. first_name — имя пользователя. Используйте оригинальное значение из таблицы users и извлеките имя из поля name таблицы members. last_name — фамилия пользователя. Используйте оригинальное значение из таблицы users и извлеките фамилию из поля name таблицы members. age — возраст пользователя. Используйте оригинальное значение из таблицы users и NULL для данных из members. birthday — день рождения пользователя. Используйте оригинальное значение из таблицы members и NULL для данных из users. sex — пол пользователя. users id first_name last_name age sex 1 Дмитрий Федьков 18 m 2 Светлана Иванова 30 w 3 Никита Трутнев 17 m members id name birthday sex 1 Денис Кац 1991-04-04 m 2 Алена Сорокина 1998-11-23 w 3 Василий Федьков 2000-10-08 m Как грамотно написать запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 07:55 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 09:06 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
В принципе поле name по заданию не требуется, и его вроде бы можно и выкинуть. Но это формально приведёт к утрате данных, что есть сакс голимый. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 09:08 |
|
Подскажите где ошибся
|
|||
---|---|---|---|
#18+
И во втором подзапросе я забыл поправить имя таблицы - авось справишься. Lugner32В его профиле написано что стаж работы более 10 лет и он участник различных олимпиад и основатель собственного учебного онлайн сервиса.Это ни о чём не говорит. А вот принятие неверного ответа как правильного... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 09:09 |
|
|
start [/forum/topic.php?fid=47&msg=39795536&tid=1829211]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
100ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 317ms |
total: | 523ms |
0 / 0 |