• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

SQL нервораздиратель

Vlg

Green Team
02.11.2019
117
1
Hello,world! Я решил выучить sql , но после одного запроса я перестал понимать его логику.
У меня есть база и из нее я должен вывести два самолёта самой малой дистанции и самой большой Вот пример кода
SQL:
SELECT aircraft_code, MIN(range), MAX(range) FROM aircrafts
GROUP BY aircraft_code;
Но вместо двух значений он выводить дважды один и тот же столб(range)
 

Вложения

  • Screenshot_2021-06-22-01-51-30-496_com.kriskast.remotedb.png
    Screenshot_2021-06-22-01-51-30-496_com.kriskast.remotedb.png
    87,1 КБ · Просмотры: 526
Решение
Эй! Я так писал,но почему-то не работало и выводило что агрегаты не допустимы. А щас заработало. Спасибо.
Раз ты такой гений то помоги ещё. Видишь, чтобы найти минимальное и максимальное значение sql проходит список дважды. А у меня предполагается что список более 2млн записей. Поэтому мне нужно найти Макс и мин за один цикл.
Без понятия, не силен в SQL.

SQL:
DECLARE @max int
DECLARE @min int

SET @max = select max(range) from aircrafts
SET @min = select min(range) from aircrafts)

select * from aircrafts where range in (@min,@max);

Я не гений SQL, но мб вот так. Если я еще не до конца поехал головой, то это вроде как оптимизирует. Т.к. если мы нашли max, то на некст итерации будем опять его искать (?). Без понятия, на самом...
Коллега, не факт что помогу ценным советом но попробуй следующий сайтик, он вроде как помогает научиться работать с sql с самого начала. Если реально качественно обучают напиши пожалуйста, тоже нужно изучать, но лень давит
 
Коллега, не факт что помогу ценным советом но попробуй следующий сайтик, он вроде как помогает научиться работать с sql с самого начала. Если реально качественно обучают напиши пожалуйста, тоже нужно изучать, но лень давит
Подумаю над твоим вариантом
 
Hello,world! Я решил выучить sql , но после одного запроса я перестал понимать его логику.
У меня есть база и из нее я должен вывести два самолёта самой малой дистанции и самой большой Вот пример кода
SQL:
SELECT aircraft_code, MIN(range), MAX(range) FROM aircrafts
GROUP BY aircraft_code;
Но вместо двух значений он выводить дважды один и тот же столб(range)
Попробуй вот так -
SQL:
SELECT aircraft_code, MIN(range) AS range, MAX(range) AS range FROM aircrafts GROUP BY aircraft_code;
 
Нет, как видишь опять выводятся два столбца полностью.
Давайте я уточню чего я хочу .
Существует два столбца в одной таблице. 1 Столб aircraft_code 2 столб range все это в таблице aircrafts
Итак мне нужно вывести два значения aircraft_code где range равен максимальному значению и минимальному значению.
 

Вложения

  • Screenshot_2021-06-23-02-16-36-424_com.kriskast.remotedb.png
    Screenshot_2021-06-23-02-16-36-424_com.kriskast.remotedb.png
    74,1 КБ · Просмотры: 156
Нет, как видишь опять выводятся два столбца полностью.
Давайте я уточню чего я хочу .
Существует два столбца в одной таблице. 1 Столб aircraft_code 2 столб range все это в таблице aircrafts
Итак мне нужно вывести два значения aircraft_code где range равен максимальному значению и минимальному значению.
Затупил
SQL:
 select * from aircrafts where range in ((select min(range) from aircrafts), (select max(range) from aircrafts));
 
Затупил
SQL:
 select * from aircrafts where range in ((select min(range) from aircrafts), (select max(range) from aircrafts));
Эй! Я так писал,но почему-то не работало и выводило что агрегаты не допустимы. А щас заработало. Спасибо.
Раз ты такой гений то помоги ещё. Видишь, чтобы найти минимальное и максимальное значение sql проходит список дважды. А у меня предполагается что список более 2млн записей. Поэтому мне нужно найти Макс и мин за один цикл.
 
Эй! Я так писал,но почему-то не работало и выводило что агрегаты не допустимы. А щас заработало. Спасибо.
Раз ты такой гений то помоги ещё. Видишь, чтобы найти минимальное и максимальное значение sql проходит список дважды. А у меня предполагается что список более 2млн записей. Поэтому мне нужно найти Макс и мин за один цикл.
Без понятия, не силен в SQL.

SQL:
DECLARE @max int
DECLARE @min int

SET @max = select max(range) from aircrafts
SET @min = select min(range) from aircrafts)

select * from aircrafts where range in (@min,@max);

Я не гений SQL, но мб вот так. Если я еще не до конца поехал головой, то это вроде как оптимизирует. Т.к. если мы нашли max, то на некст итерации будем опять его искать (?). Без понятия, на самом деле.
 
Решение
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab