|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
xman123Люди ) Кто нить 68 сделал??? Задание: 68 Найти количество маршрутов, которые обслуживаются наибольшим числом рейсов. Замечания. 1) A - B и B - A считать ОДНИМ И ТЕМ ЖЕ маршрутом. 2) Использовать только таблицу Trip select count(*) as qty from ( select cnt_trips from ( Select (COALESCE(T1.cnt_trips,0)+COALESCE(T2.cnt_trips,0)) as cnt_trips from ( Select count(trip_no) as cnt_trips, town_from, town_to from Trip where town_from IS NOT NULL OR town_to IS NOT NULL GROUP BY town_from, town_to ) as T1 LEFT JOIN ( Select count(trip_no) as cnt_trips, town_from, town_to from Trip where town_from IS NOT NULL OR town_to IS NOT NULL GROUP BY town_from, town_to ) as T2 ON T1.town_from=T2.town_to AND T1.town_to=T2.town_from where T1.town_from>T2.town_from )z WHERE cnt_trips= ( select MAX(A.cnt_trips) as MAX_CNT from ( select cnt_trips from ( Select (COALESCE(T1.cnt_trips,0)+COALESCE(T2.cnt_trips,0)) as cnt_trips from ( Select count(trip_no) as cnt_trips, town_from, town_to from Trip GROUP BY town_from, town_to ) as T1 LEFT JOIN ( Select count(trip_no) as cnt_trips, town_from, town_to from Trip GROUP BY town_from, town_to ) as T2 ON T1.town_from=T2.town_to AND T1.town_to=T2.town_from where T1.town_from>T2.town_from )z )A ) )B Неверно. Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе. * Несовпадение данных (1) Результат выполнения Вашего запроса: qty 2 А я вообще задание не понял. Какое то оно размытое, как мне кажется. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2015, 09:55 |
|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
Задание: 61 (Serge I: 2003-02-14) Посчитать остаток денежных средств на всех пунктах приема для базы данных с отчетностью не чаще одного раза в день. Не понято почему SELECT (SELECT SUM(inc) FROM Income_o) - (SELECT SUM(out) FROM Outcome_o) as 'остаток' "Ваш запрос не прошел проверку на третьей проверочной базе." Проходит: SELECT SUM(s) as 'остаток' FROM ( SELECT SUM(inc) s FROM Income_o UNION SELECT -SUM(out) s FROM Outcome_o ) this_t в чем собственно может быть загвоздка, у кого-нибудь есть идеи? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 14:16 |
|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
Evil_gsm, все идеи здесь лежат вокруг понимания правил работы арифметических операций в sql. Когда результат select a+b drom dual отличается от результата результата select sum(a) From (select a from dual union select b from dual)? Как только вы поймете это, вашему глазу станет совершенно понятно, в чем ошибка. Просто так писать нельзя, необходимо внесение исправления в запрос, учитывающего способ работы арифметических операций в sql. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 14:35 |
|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
Evil_gsm, SELECT SUM(...) по пустому набору вернет null любые арифметические операции с null дадут null Добавьте isnull к вашему первому варианту и получите верный ответ Код: sql 1.
А вообще, вот так будет "покрасивей" Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 14:44 |
|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
msLex, удивитесь вы или нет, но и ваш пример не пройдет "расширенную проверку". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 14:51 |
|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
booby, запрос msLexSELECT (SELECT ISNULL(SUM(inc), 0) FROM Income_o) - (SELECT ISNULL(SUM(out), 0) FROM Outcome_o) as 'остаток' Прошел проверку . Спасибо вам всем за участие ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 15:02 |
|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
Evil_gsm booby, запрос msLexSELECT (SELECT ISNULL(SUM(inc), 0) FROM Income_o) - (SELECT ISNULL(SUM(out), 0) FROM Outcome_o) as 'остаток' Прошел проверку . Спасибо вам всем за участие Это ужасно, что ошибочный запрос вселяет в вас радость. На том сайте просто не умеют проверять sql. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 15:06 |
|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
booby Evil_gsm booby, запрос пропущено... Прошел проверку . Спасибо вам всем за участие Это ужасно, что ошибочный запрос вселяет в вас радость. На том сайте просто не умеют проверять sql. Хотя, конкретно в данном случае это именно я ошибся. Точно в такой записи запрос как раз правильный. Но для общего случая, при наличии group by в ветках union, такое преобразование union в прямое вычисление содержит ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 15:18 |
|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
booby, мне было непонятно чем один запрос отличается от другого, человек дал доходчивое объяснение и я его понял. Вы конечно из лучших побуждений дали свои ответы, но если вы будете более развернуто объяснять ход своих мыслей, вас сможет понимать больше людей, а не только интерпретатор языка ) шутка. ... Такой запрос при наличии группировки проходит проверку SELECT SUM(s) as 'остаток' FROM ( SELECT SUM(inc) s FROM Income_o GROUP BY point UNION SELECT -SUM(out) s FROM Outcome_o GROUP BY point ) this_t Я так полагаю вы имели ввиду вариант SELECT (SELECT ISNULL(SUM(inc), 0) FROM Income_o GROUP BY point) - (SELECT ISNULL(SUM(out), 0) FROM Outcome_o GROUP BY point) as 'остаток' так да запрос не отрабатывает совсем ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 16:11 |
|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
Evil_gsm booby, мне было непонятно чем один запрос отличается от другого, человек дал доходчивое объяснение и я его понял. Вы конечно из лучших побуждений дали свои ответы, но если вы будете более развернуто объяснять ход своих мыслей, вас сможет понимать больше людей, а не только интерпретатор языка ) шутка. ... Такой запрос при наличии группировки проходит проверку SELECT SUM(s) as 'остаток' FROM ( SELECT SUM(inc) s FROM Income_o GROUP BY point UNION SELECT -SUM(out) s FROM Outcome_o GROUP BY point ) this_t Я так полагаю вы имели ввиду вариант SELECT (SELECT ISNULL(SUM(inc), 0) FROM Income_o GROUP BY point) - (SELECT ISNULL(SUM(out), 0) FROM Outcome_o GROUP BY point) as 'остаток' так да запрос не отрабатывает совсем Именно так. А должен. Это всего лишь значит, что в таком случае вы возвращаетесь в свою исходную позицию. Про развернутось - еще ширшее уже некуда. Вы правда не понимаете, что нужно поменять? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2022, 17:18 |
|
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
|
|||
---|---|---|---|
#18+
booby Хотя, конкретно в данном случае это именно я ошибся. Точно в такой записи запрос как раз правильный. Но для общего случая, при наличии group by в ветках union, такое преобразование union в прямое вычисление содержит ошибку Вы совершенно правы, то что запрос прошёл проверку - это ошибка с точки зрения работы TSQL. С точки зрения "логики задачи", те использования ISNULL() возвращает "правильный" результат, поскольку сумма не может быть NULL. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2022, 08:31 |
|
|
start [/forum/topic.php?fid=46&msg=40127213&tid=1683914]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 235ms |
total: | 484ms |
0 / 0 |