Не получается сделать 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 у нас в запросе только одна запись.

Можно просто отсортировать по SUM_Money по убыванию и взять первую запись:

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 free

Download our free app

Advertising

Advertising

No ads with Premium

These examples may contain rude words based on your search.

These examples may contain colloquial words based on your search.

sql

SQL 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, которая реализует подмножество

оператора SQL SELECT в документах JSON.

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

query with a complex structure and recursive procedure (stored procedure in the database, or analysis algorithm in the client application) forming a separate table.

Для преобразования в сбалансированную иерархию я применяю в основном 2 подхода: SQL запрос на выборку со сложной структурой и рекурсивную процедуру (stored procedure в СУБД, либо алгоритм анализа в клиентском приложении) формирующую отдельную таблицу.

When I do a simple SQL SELECT, I get an error saying «Automatic transaction is disabled».

Во время простейшей

команды SELECT, я получаю ошибку «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.

В дополнение к типичным запросам

SQL, типа оператора SELECT, пространственные БД могут выполнять широкий набор пространственных операторов.

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.

Введите

инструкцию SQL, которая будет выбирать данные из базы данных-источника.

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 free

Register Connect

No results found for this meaning. More features with our free app

Voice 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 & about

Word 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) a
 
4

Ответ Джо Стефанелли уже верен.

 ВЫБЕРИТЕ имя ИЗ (ВЫБЕРИТЕ имя ИЗ информации об агенте) как
 

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

Операторы, включающие подзапрос, обычно принимают одну из следующих форм:

  • WHERE выражение [NOT] IN (подзапрос)
  • ГДЕ выражение оператор сравнения_[ЛЮБОЙ | ВСЕ] (подзапрос)
  • ГДЕ [НЕ]СУЩЕСТВУЕТ (подзапрос)

Проверьте дополнительные правила и типы подзапросов.

Дополнительные примеры вложенных подзапросов.

  1. IN / NOT IN — этот оператор берет выходные данные внутреннего запроса после выполнения внутреннего запроса, которые могут содержать ноль или более значений, и отправляет их во внешний запрос. Затем внешний запрос извлекает все совпадающие строки [оператор IN] или не совпадающие строки [оператор NOT IN].

  2. ЛЮБОЙ — [> ЛЮБОЙ или ЛЮБОЙ оператор берет список значений, созданных внутренним запросом, и извлекает все значения, которые больше минимального значения списка.

напр. >ANY(100,200,300), оператор ANY извлечет все значения больше 100.

  1. ALL – [>ALL или ALL оператор берет список значений, созданных внутренним запросом, и извлекает все значения, которые больше максимального списка.

напр. >ALL(100,200,300), оператор ALL выберет все значения больше 300.

  1. EXISTS – Ключевое слово EXISTS создает логическое значение [ИСТИНА/ЛОЖЬ]. EXISTS проверяет наличие строк, возвращаемых подзапросом.
0

ПОПРОБУЙТЕ ЭТО

 'выберите *,(ВЫБЕРИТЕ количество (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 * для производственного кода по следующим причинам:

  1. Во-первых, SELECT * часто извлекает больше данных, чем требуется для работы приложения. Это приводит к передаче ненужных данных из SQL Server в клиентское приложение, что требует больше времени для передачи данных по сети и замедления работы приложения.
  2. Во-вторых, если в таблицу добавляется один или несколько новых столбцов, 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 . Например, следующий оператор возвращает все города клиентов в Калифорнии и количество клиентов в каждом городе.

 ВЫБОР
 город,
 СЧИТАТЬ (*)
ОТ
 продажи.