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

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

Vlg

Green Team
02.11.2019
117
1
BIT
19
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 КБ · Просмотры: 504
Решение
Эй! Я так писал,но почему-то не работало и выводило что агрегаты не допустимы. А щас заработало. Спасибо.
Раз ты такой гений то помоги ещё. Видишь, чтобы найти минимальное и максимальное значение 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, то на некст итерации будем опять его искать (?). Без понятия, на самом...
02.03.2021
562
404
BIT
282
Коллега, не факт что помогу ценным советом но попробуй следующий сайтик, он вроде как помогает научиться работать с sql с самого начала. Если реально качественно обучают напиши пожалуйста, тоже нужно изучать, но лень давит
 

Vlg

Green Team
02.11.2019
117
1
BIT
19
Коллега, не факт что помогу ценным советом но попробуй следующий сайтик, он вроде как помогает научиться работать с sql с самого начала. Если реально качественно обучают напиши пожалуйста, тоже нужно изучать, но лень давит
Подумаю над твоим вариантом
 

nks1ck

Green Team
02.11.2020
223
109
BIT
0
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;
 

Vlg

Green Team
02.11.2019
117
1
BIT
19
Нет, как видишь опять выводятся два столбца полностью.
Давайте я уточню чего я хочу .
Существует два столбца в одной таблице. 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 КБ · Просмотры: 135

nks1ck

Green Team
02.11.2020
223
109
BIT
0
Нет, как видишь опять выводятся два столбца полностью.
Давайте я уточню чего я хочу .
Существует два столбца в одной таблице. 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));
 

Vlg

Green Team
02.11.2019
117
1
BIT
19
Затупил
SQL:
 select * from aircrafts where range in ((select min(range) from aircrafts), (select max(range) from aircrafts));
Эй! Я так писал,но почему-то не работало и выводило что агрегаты не допустимы. А щас заработало. Спасибо.
Раз ты такой гений то помоги ещё. Видишь, чтобы найти минимальное и максимальное значение sql проходит список дважды. А у меня предполагается что список более 2млн записей. Поэтому мне нужно найти Макс и мин за один цикл.
 

nks1ck

Green Team
02.11.2020
223
109
BIT
0
Эй! Я так писал,но почему-то не работало и выводило что агрегаты не допустимы. А щас заработало. Спасибо.
Раз ты такой гений то помоги ещё. Видишь, чтобы найти минимальное и максимальное значение 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, то на некст итерации будем опять его искать (?). Без понятия, на самом деле.
 
Решение
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!