Size: a a a

2020 June 30

AK

Alex Ker in sql_ninja
Руслан Ruslan73
Не знаю, я не понимаю вашего алгоритма. В решении Артема алгоритм понимаю, Ваш нет. С cross apply уже предлагал вариант. Но народ считает cross apply подзапросом нельзя типа
Понимаю
источник

РR

Руслан Ruslan73... in sql_ninja
Можно переделать запрос в табличную функцию и кроссаплайти функцию
источник

NB

Nikita Baburov in sql_ninja
Alex Ker
Понимаю
А правильный ответ будет вечером?
источник

AK

Alex Ker in sql_ninja
Все решил но cross apply
источник

AK

Alex Ker in sql_ninja
источник

Дt

Дмитрий texnix 🇨🇳... in sql_ninja
не суть что кроссапли
источник

Дt

Дмитрий texnix 🇨🇳... in sql_ninja
а суть что select from select
источник

AK

Alex Ker in sql_ninja
Дмитрий texnix 🇨🇳
а суть что select from select
Я сначала думал как join на саму себя таблицу но не вышло
источник

РR

Руслан Ruslan73... in sql_ninja
Дмитрий texnix 🇨🇳
а суть что select from select
Нет cross apply это не select from select, это совсем другое
источник

DN

Denis Novickiy in sql_ninja
Nikita Baburov
А правильный ответ будет вечером?
так правильный ответ уже был же от автора
источник

Дt

Дмитрий texnix 🇨🇳... in sql_ninja
Руслан Ruslan73
Нет cross apply это не select from select, это совсем другое
если cross apply из другой таблицы то да, но там внутри ещё один селект
источник

Дt

Дмитрий texnix 🇨🇳... in sql_ninja
и условие задачи "одним селектом" не выполняется
источник

РR

Руслан Ruslan73... in sql_ninja
Дмитрий texnix 🇨🇳
и условие задачи "одним селектом" не выполняется
Это да, от второго слова select с cross apply не избавиться. Но мне такие условия задачи не нравятся. Это из области - задача имеет 50 решений я знаю одно, угадайте какое я знаю, или вы все стажеры
источник

NB

Nikita Baburov in sql_ninja
Руслан Ruslan73
Это да, от второго слова select с cross apply не избавиться. Но мне такие условия задачи не нравятся. Это из области - задача имеет 50 решений я знаю одно, угадайте какое я знаю, или вы все стажеры
Так это задача на стажёра 😂
источник

РR

Руслан Ruslan73... in sql_ninja
Imho либо надо условие ставить более сложное чтобы вариантов было меньше либо принимать все решения.
источник

AS

Alexey Shumkin in sql_ninja
Nik
Без облаков.. Ибо ненадёжно это.. И по импортозамещению не пройдёт
Облака есть и российские )
источник

AK

Alex Ker in sql_ninja
Артем
WITH cte AS
(
SELECT id, wbuser_id, amount
FROM
(
VALUES
(1,1,1.0),
(2,1,5.0),
(3,1,5.0),
(4,1,4.0),
(5,1,4.0),
(6,2,4.0),
(7,2,3.0)
) t (id, wbuser_id, amount)
)
SELECT MIN(cte.id) id, cte.wbuser_id, cte.amount
FROM cte
 LEFT JOIN cte cte2
   ON cte2.amount > cte.amount
     AND cte2.wbuser_id = cte.wbuser_id
WHERE cte2.id IS NULL
GROUP by cte.wbuser_id, cte.amount
ORDER BY MIN(cte.id)
Крутое решение порадовало
источник

А

Артем in sql_ninja
Руслан Ruslan73
Imho либо надо условие ставить более сложное чтобы вариантов было меньше либо принимать все решения.
Хорошо. Добавим "с наибыстрейшей скоростью выполнения из всех кандидатов". Да начнется сатанизм)
источник

РR

Руслан Ruslan73... in sql_ninja
Артем
Хорошо. Добавим "с наибыстрейшей скоростью выполнения из всех кандидатов". Да начнется сатанизм)
Это тоже так себе критерий. Надо доказывать, что оно быстрейшее. Плюс быстрейшее в ущерб читабельности это сомнительно - стоимость времени программиста, который потом будет тратить лишние минуты, чтобы разобраться в тех же деньгах измеряется что и железо.
источник

VS

Vasily S. in sql_ninja
Артем
Хорошо. Добавим "с наибыстрейшей скоростью выполнения из всех кандидатов". Да начнется сатанизм)
Добавлю ещё сатанизма. Лучшее решение во многом определяется ddl. Хотя, если автор его предоставит, то и вариантов не останется.
источник