Не получается сделать SELECT FROM SELECT [MS SQL Server]
Вопрос задан
Изменён 5 лет 7 месяцев назад
Просмотрен 26k раз
Есть таблица Сотрудники (Employees) и Отделы (Departments). Необходимо найти такие отделы, в которых суммарная зарплата сотрудников будет наибольшей. Вот наполнение самих таблиц
Дошел только до того, что нашел максимальную сумму
SELECT MAX(A.SUM_Money) FROM ( SELECT Dep_number, SUM(Cash_bonus + Salary) AS SUM_Money FROM Employees GROUP BY Dep_number ) AS A
Только вот никак не могу вывести рядом поле с номером отдела
SELECT A.Dep_number, MAX(A.SUM_Money) FROM ( SELECT Dep_number, SUM(Cash_bonus + Salary) AS SUM_Money FROM Employees GROUP BY Dep_number ) AS A
Пишет ошибку:
Сообщение 8120, уровень 16, состояние 1, строка 3
Столбец «A. Dep_number» недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.
Подскажите как быть?
- sql
- sql-server
- sql-server-2008
Вообще, группировка должна быть в том запросе, в котором используется аггрегация. Так что запрос будет таким:
SELECT A.Dep_number, MAX(A.SUM_Money) FROM ( SELECT Dep_number, SUM(Cash_bonus + Salary) AS SUM_Money FROM Employees GROUP BY Dep_number ) AS A GROUP BY A.Dep_Number.
Но это не то, что нам нужно, поскольку для каждого Dep_Number у нас в запросе только одна запись.
SELECT TOP 1 A.Dep_number, A.SUM_Money FROM ( SELECT Dep_number, SUM(Cash_bonus + Salary) AS SUM_Money FROM Employees GROUP BY Dep_number ) AS A ORDER BY A.SUM_Money DESC
Но отделов с одинаковой суммой может быть несколько. Поэтому добавим ранжирование в подзапрос:
SELECT A. Dep_number, A.SUM_Money FROM ( SELECT rank() over(order by sum(cash_bonus+Salary) desc) rank, Dep_number, SUM(Cash_bonus + Salary) AS SUM_Money FROM Employees GROUP BY Dep_number ) AS A where rank=1
фиддл
Зарегистрируйтесь или войдите
Регистрация через Google Регистрация через Facebook Регистрация через почтуОтправить без регистрации
ПочтаНеобходима, но никому не показывается
Отправить без регистрации
ПочтаНеобходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
sql select — Translation into Russian — examples English
Premium History Favourites
Advertising Download for Windows It’s freeDownload our free app
Advertising AdvertisingNo ads with PremiumThese examples may contain rude words based on your search.
These examples may contain colloquial words based on your search.
sqlSQL SQL-базы СУБД SQL-
selectвыбрать выбирать выбор избрать избранный
Cosmos DB is a NoSQL database service that implements a subset of the SQL SELECT statement on JSON documents.
Cosmos DB — это служба базы данных NoSQL, которая реализует подмножество
The SQL SELECT statement is used to fetch the data from a database table which returns this data in the form of a result table.
Оператор SELECT используется для извлечения данных из таблицы базы данных, которая возвращает данные в виде таблицы результатов.
For convert to a balanced hierarchy, I use mainly two approaches: SQL select
Для преобразования в сбалансированную иерархию я применяю в основном 2 подхода: SQL запрос на выборку со сложной структурой и рекурсивную процедуру (stored procedure в СУБД, либо алгоритм анализа в клиентском приложении) формирующую отдельную таблицу.
When I do a simple SQL SELECT, I get an error saying «Automatic transaction is disabled».
Во время простейшей
Other results
Drop-down list of instances of SQL Server to select.
Раскрывающийся список экземпляров SQL Server для выбора.
Along with typical SQL queries including SELECT statements, spatial databases can execute a wide assortment of spatial operations.
В дополнение к типичным запросам
If you decide to use an existing SQL server, select one of the server instances listed in the wizard window.
Если вы решите использовать уже существующий SQL-сервер, в окне мастера установки выберите в списке один из существующих серверов.
Be sure to select SQL Server Compact as the version and provide detailed repro steps to help us identify the problem.
Укажите SQL Server Compact в качестве версии и приведите подробные шаги, с помощью которых можно будет воспроизвести и обнаружить проблему.
In addition to typical SQL queries such as SELECT statements, spatial databases can perform a wide variety of spatial operations.
В дополнение к типичным запросам SQL, типа оператора SELECT, пространственные БД могут выполнять широкий набор пространственных операторов.
In addition to typical SQL queries such as SELECT statements, spatial databases can perform a wide variety of spatial operations.
В дополнение к типичным запросам SQL, типа оператора SELECT, пространственные БД могут выполнять широкий набор пространственных операторов.
If we select an SQL or Exchange database, DPM will gather information from the product and it will automatically find where the files are.
Если мы выберем базу данных SQL или Exchange, DPM соберет информацию о продукте и автоматически обнаружит местонахождение файлов.
Figure A: You must select the SQL Server that will store your application inventory database.
Рисунок А: Вам нужно выбрать SQL сервер, на котором будет храниться база данных реестра ваших приложений.
Type the SQL statement that will select data from the source database.
Введите
Expand SQL Server Network Configuration tree node in the left panel, then select your SQL Express instance (REGULA in our example).
Раскройте ветку дерева SQL Server Network Configuration в левой панели, затем выберите ваш экземпляр SQL Express (в нашем примере это REGULA).
As you can see in the figure, this screen asks you to select your SQL Server from a drop down list.
Как видно на рисунке, в этом окне программа просит вас выбрать SQL сервер из предложенного списка.
SSIS Packages can be deployed to SQL Server or the File System. Select SQL Server for maximum security and manageability.
Пакеты служб SSIS можно установить на SQL Server или в файловую систему. Для повышенной безопасности и управляемости устанавливайте их на SQL Server.
names of SQL clauses: select, from, where, on…
Основные предложения SQL: SELECT, FROM и WHERE
On the Installation Type page, select Add features to an existing instance of SQL Server, and select the instance you would like to update.
На странице выбора типа установки выберите добавление компонентов к существующему экземпляру SQL Server и укажите экземпляр, который требуется обновить.
The next screen that you will see asks you to select a SQL Server from a drop down list, as shown in Figure A. Although this screen looks simple enough, it deserves a bit of explaining.
В следующем окне программа попросит вас выбрать SQL сервер из предлагаемого списка, как показано на рисунке A. Хотя это окно выглядит довольно просто, оно требует некоторых объяснений.
You have to select «SQL Server» and click «OK».
Выбираем «MS SQL Server» и нажимаем «ОК».
Possibly inappropriate content Examples are used only to help you translate the word or expression searched in various contexts. They are not selected or validated by us and can contain inappropriate terms or ideas. Please report examples to be edited or not to be displayed. Rude or colloquial translations are usually marked in red or orange. Register to see more examples It’s simple and it’s freeRegister Connect
No results found for this meaning. More features with our free appVoice and photo translation, offline features, synonyms, conjugation, learning games
Results: 82. Exact: 4. Elapsed time: 215 ms.
Documents Corporate solutions Conjugation Synonyms Grammar Check Help & aboutWord index: 1-300, 301-600, 601-900
Expression index: 1-400, 401-800, 801-1200
Phrase index: 1-400, 401-800, 801-1200
Вложенный оператор select в SQL Server
спросил
Изменено 9 месяцев назад
Просмотрено 966 тысяч раз
Почему не работает следующее?
ВЫБЕРИТЕ имя ИЗ (ВЫБЕРИТЕ имя ИЗ информации об агенте)
Думаю, мое понимание SQL неверно, потому что я думал, что это вернет то же самое, что и
ВЫБЕРИТЕ имя ИЗ информации об агенте
Разве внутренний оператор select не создает результирующий набор, который затем запрашивает внешний оператор SELECT?
- sql
- sql-сервер
- вложенный
- подзапрос
- запрос
Вам нужно псевдоним подзапроса.
ВЫБЕРИТЕ имя ИЗ (ВЫБЕРИТЕ имя ИЗ информации об агенте) a
или, чтобы быть более точным,
SELECT a.name FROM (SELECT name FROM agentinformation) a4
Ответ Джо Стефанелли уже верен.
ВЫБЕРИТЕ имя ИЗ (ВЫБЕРИТЕ имя ИЗ информации об агенте) как
Нам нужно создать псевдоним подзапроса, потому что для запроса требуется табличный объект, который мы получим, создав псевдоним для подзапроса. Концептуально результаты подзапроса подставляются во внешний запрос. Поскольку нам нужен объект таблицы во внешнем запросе, нам нужно создать псевдоним внутреннего запроса.
Операторы, включающие подзапрос, обычно принимают одну из следующих форм:
- WHERE выражение [NOT] IN (подзапрос)
- ГДЕ выражение оператор сравнения_[ЛЮБОЙ | ВСЕ] (подзапрос)
- ГДЕ [НЕ]СУЩЕСТВУЕТ (подзапрос)
Проверьте дополнительные правила и типы подзапросов.
Дополнительные примеры вложенных подзапросов.
IN / NOT IN — этот оператор берет выходные данные внутреннего запроса после выполнения внутреннего запроса, которые могут содержать ноль или более значений, и отправляет их во внешний запрос. Затем внешний запрос извлекает все совпадающие строки [оператор IN] или не совпадающие строки [оператор NOT IN].
ЛЮБОЙ — [> ЛЮБОЙ или ЛЮБОЙ оператор берет список значений, созданных внутренним запросом, и извлекает все значения, которые больше минимального значения списка.
напр. >ANY(100,200,300), оператор ANY извлечет все значения больше 100.
- ALL – [>ALL или ALL оператор берет список значений, созданных внутренним запросом, и извлекает все значения, которые больше максимального списка.
напр. >ALL(100,200,300), оператор ALL выберет все значения больше 300.
- EXISTS – Ключевое слово EXISTS создает логическое значение [ИСТИНА/ЛОЖЬ]. EXISTS проверяет наличие строк, возвращаемых подзапросом.
ПОПРОБУЙТЕ ЭТО
'выберите *,(ВЫБЕРИТЕ количество (id) ИЗ продуктов, ГДЕ user_id = users.id) как products_count от пользователей ORDER BY products_count DESC, ID DESC LIMIT 200
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаТребуется, но никогда не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
SQL Server SELECT — запрос данных из одной таблицы
Резюме : это руководство знакомит вас с основами оператора SQL Server SELECT
, уделяя особое внимание тому, как выполнять запросы к одной таблице.
Базовый SQL Server
Оператор SELECT
Таблицы базы данных — это объекты, которые хранят все данные в базе данных. В таблице данные логически организованы в формате строк и столбцов, аналогичном электронной таблице.
Каждая строка представляет уникальную запись в таблице, а каждый столбец представляет поле в записи. Например, таблица клиентов
содержит данные о клиентах, такие как идентификационный номер клиента, имя, фамилия, телефон, адрес электронной почты и адрес, как показано ниже:
SQL Server использует схемы для логического группирования таблиц и других объектов базы данных. В нашей тестовой базе данных есть две схемы: продажи
и производство
. Схема продаж
группирует все таблицы, связанные с продажами, а схема производства
группирует все таблицы, связанные с производством.
Для запроса данных из таблицы используется оператор SELECT
. Ниже показана самая простая форма оператора SELECT
:
ВЫБОР select_list ОТ имя_схемы. имя_таблицы; Язык кода: SQL (язык структурированных запросов) (sql)
В этом синтаксисе:
- Сначала укажите список разделенных запятыми столбцов, из которых вы хотите запросить данные, в предложении
SELECT
. - Во-вторых, укажите исходную таблицу и имя ее схемы в предложении
FROM
.
При обработке инструкции SELECT
SQL Server обрабатывает 9Сначала предложение 0117 FROM , а затем предложение SELECT
, хотя предложение SELECT
появляется в запросе первым.
SQL Server
Примеры операторов SELECT
Давайте воспользуемся таблицей клиентов
в образце базы данных для демонстрации.
A) SQL Server
SELECT
— получение некоторых столбцов таблицы exampleСледующий запрос находит имя и фамилию всех клиентов:
SELECT имя, фамилия ОТ продажи.клиенты; Язык кода: SQL (язык структурированных запросов) (sql)
Вот результат:
Результат запроса называется набором результатов.
Следующий оператор возвращает имена, фамилии и адреса электронной почты всех клиентов:
SELECT имя, фамилия, электронная почта ОТ продажи.клиенты; Язык кода: SQL (язык структурированных запросов) (sql)
B) SQL Server
SELECT
— получить все столбцы из таблицы пример Чтобы получить данные из всех столбцов таблицы, вы можете указать все столбцы в списке выбора. Вы также можете использовать SELECT *
в качестве сокращения, чтобы сэкономить время на вводе:
SELECT * ОТ продажи.клиенты; Язык кода: SQL (язык структурированных запросов) (sql)
Команда SELECT *
полезна при изучении столбцов и данных таблицы, с которыми вы не знакомы. Это также полезно для специальных запросов.
Однако не следует использовать SELECT *
для производственного кода по следующим причинам:
- Во-первых,
SELECT *
часто извлекает больше данных, чем требуется для работы приложения. Это приводит к передаче ненужных данных из SQL Server в клиентское приложение, что требует больше времени для передачи данных по сети и замедления работы приложения. - Во-вторых, если в таблицу добавляется один или несколько новых столбцов,
SELECT *
просто извлекает все столбцы, включающие вновь добавленные столбцы, которые не предназначались для использования в приложении. Это может привести к сбою приложения.
C) SQL Server
SELECT
— сортировка набора результатов Для фильтрации строк на основе одного или нескольких условий используется предложение WHERE
, как показано в следующем примере:
SELECT * ОТ продажи.клиенты ГДЕ состояние = 'ЦС'; Язык кода: SQL (язык структурированных запросов) (sql)
В этом примере запрос возвращает клиентов, находящихся в Калифорнии.
Когда доступно предложение WHERE
, SQL Server обрабатывает предложения запроса в следующей последовательности: ИЗ
, ГДЕ
и ВЫБРАТЬ
.
Чтобы отсортировать набор результатов на основе одного или нескольких столбцов, используйте предложение ORDER BY
, как показано в следующем примере:
SELECT * ОТ продажи.клиенты ГДЕ состояние = 'Калифорния' СОРТИРОВАТЬ ПО имя; Язык кода: SQL (язык структурированных запросов) (sql)
В этом примере предложение ORDER BY
сортирует клиентов по их именам в порядке возрастания.
В этом случае SQL Server обрабатывает предложения запроса в следующей последовательности: FROM
, WHERE
, SELECT
и ORDER BY
.
D) SQL Server
SELECT
— пример группировки строк в группы Чтобы сгруппировать строки в группы, используйте предложение GROUP BY
. Например, следующий оператор возвращает все города клиентов в Калифорнии и количество клиентов в каждом городе.
ВЫБОР город, СЧИТАТЬ (*) ОТ продажи.