Вопросы с тегом «group-by»

GROUP BY: агрегирование SQL для общих значений

29
Почему подстановочные знаки в операторах GROUP BY не работают?

Я пытаюсь заставить работать следующий оператор SQL, но получаю синтаксическую ошибку: SELECT A.*, COUNT(B.foo) FROM TABLE1 A LEFT JOIN TABLE2 B ON A.PKey = B.FKey GROUP BY A.* Здесь A - это широкая таблица с 40 столбцами, и я хотел бы избежать перечисления каждого имени столбца в предложении GROUP...

26
Почему мы используем Группу по 1 и Группу по 1,2,3 в запросе SQL?

В SQL-запросах мы используем предложение Group by для применения агрегатных функций. Но какова цель использования числового значения вместо имени столбца с предложением Group by? Например: сгруппировать по 1....

24
Повысить производительность COUNT / GROUP-BY в большой таблице PostgresSQL?

Я использую PostgresSQL 9.2 и имею отношение в 12 столбцов с 6 700 000 строк. Он содержит узлы в трехмерном пространстве, каждый из которых ссылается на пользователя (который его создал). Чтобы запросить, какой пользователь создал, сколько узлов я делаю следующее (добавлено explain analyzeдля...

21
Выберите столбцы внутри json_agg

У меня есть запрос как: SELECT a.id, a.name, json_agg(b.*) as "item" FROM a JOIN b ON b.item_id = a.id GROUP BY a.id, a.name; Как я могу выбрать столбцы, bчтобы у меня не было b.item_idобъекта JSON? Я читал о ROW, но он возвращает объект JSON, как: {"f1": "Foo", "f2": "Bar"} Мне нужно будет...

20
Подсчитайте, где два или более столбцов подряд превышают определенное значение [баскетбол, двойной, двойной, тройной двойной]

Я играю в баскетбольную игру, которая позволяет выводить статистику в виде файла базы данных, чтобы можно было рассчитать статистику, которая не реализована в игре. До сих пор у меня не было проблем с вычислением статистики, которую я хотел, но теперь я столкнулся с проблемой: подсчитать количество...

16
Найти «n» последовательных свободных номеров из таблицы

У меня есть таблица с такими номерами (статус БЕСПЛАТНЫЙ или НАЗНАЧЕН) Идентификационный номер ----------------------- 1 000001 НАЗНАЧЕН 1 000002 БЕСПЛАТНО 1 000003 НАЗНАЧЕН 1 000004 БЕСПЛАТНО 1 000005 БЕСПЛАТНО 1 000006 НАЗНАЧЕН 1 000007 НАЗНАЧЕН 1 000008 БЕСПЛАТНО 1 000009 БЕСПЛАТНО 1 000010...

16
Ошибка Postgres [столбец должен появляться в предложении GROUP BY или использоваться в статистической функции] при использовании подзапроса

У меня есть две таблицы employeeи phones. Сотрудник может иметь от 0 до n телефонных номеров. Я хочу перечислить имена сотрудников с их номерами телефонов. Я использую запрос ниже, который работает нормально. SELECT empname,array_agg(phonenumber) AS phonenumbers FROM employee LEFT OUTER JOIN phones...

14
Медленный запрос на большой таблице с GROUP BY и ORDER BY

У меня есть таблица с 7,2 миллиона кортежей, которая выглядит следующим образом: table public.methods column | type | attributes --------+-----------------------+---------------------------------------------------- id | integer | not null DEFAULT nextval('methodkey'::regclass) hash | character...

14
Как выбрать несколько столбцов, но только сгруппировать по одному?

У меня проблема с group by, я хочу выбрать несколько столбцов, но сгруппировать только по одному столбцу. Запрос ниже - то, что я пытался, но он дал мне ошибку. SELECT Rls.RoleName,Pro.[FirstName],Pro.[LastName],Count(UR.[RoleId]) as [Count] from...

13
Группировка или Окно

У меня есть ситуация, я думаю, может быть решена с помощью оконной функции, но я не уверен. Представьте себе следующую таблицу CREATE TABLE tmp ( date timestamp, id_type integer ) ; INSERT INTO tmp ( date, id_type ) VALUES ( '2017-01-10 07:19:21.0', 3 ), ( '2017-01-10 07:19:22.0', 3 ), (...

12
SQL-запрос соединения для отображения строк с несуществующими строками в одной таблице

Я пытаюсь подготовить некоторые отчеты для учета рабочего времени сотрудников. У нас есть две таблицы специально для этого вопроса. Сотрудники перечислены в Membersтаблице, и каждый день они вводят временные записи выполненной ими работы и сохраняются в Time_Entryтаблице. Пример настройки с...

12
Как получить группу, где счетчик равен нулю?

Я постараюсь составить график из данных из моей базы данных SQL-сервера. У меня будут все улицы с количеством пользователей, которые живут на этой улице, даже если счет равен нулю. Для этого я пробовал этот запрос: Create table Streets( ID int IDENTITY primary key, Name varchar(100) ); create table...

12
Зачем нужен этот агрегат потока?

Проверьте этот запрос. Это довольно просто (см. В конце поста определения таблиц и индексов, а также скрипт repro): SELECT MAX(Revision) FROM dbo.TheOneders WHERE Id = 1 AND 1 = (SELECT 1); Примечание: «AND 1 = (SELECT 1) просто для того, чтобы этот запрос не был автоматически параметризован, что,...

11
Требует ли спецификация SQL GROUP BY в EXISTS ()

Microsoft в настоящее время разрешает этот синтаксис. SELECT * FROM ( VALUES (1) ) AS g(x) WHERE EXISTS ( SELECT * FROM ( VALUES (1),(1) ) AS t(x) WHERE g.x = t.x HAVING count(*) > 1 ); Обратите внимание, что GROUP BYв EXISTSпредложении нет этого действительного ANSI SQL. Или это просто...

10
выбрать строки с условием для группы (без временной таблицы)

Имея таблицу с 3 столбцами: ID category flag 1 A 1 2 A 0 3 A 0 4 B 0 5 C 0 Я хочу выбрать все строки, которые имеют flag = 1хотя бы один раз для каждой категории. Ожидаемые результаты: ID category flag 1 A 1 2 A 0 3 A 0 Это может быть решено с использованием временной таблицы следующим образом:...

8
GROUP BY с МАКСОМ и просто МАКСИМАЛЬНЫМ

Я программист, занимаюсь большой таблицей по следующей схеме: UpdateTime, PK, datetime, notnull Name, PK, char(14), notnull TheData, float Есть кластерный индекс на Name, UpdateTime Мне было интересно, что должно быть быстрее: SELECT MAX(UpdateTime) FROM [MyTable] или SELECT MAX([UpdateTime]) AS...

8
Как раскрутить и GROUP BY элементы массива JSON?

Учитывая bandтаблицу, со jsonстолбцом, содержащим массив: id | people ---+------------- 1 | ['John', 'Thomas'] 2 | ['John', 'James'] 3 | ['James', 'George'] Как перечислить количество групп, в которые входит каждое название? Желаемый результат: name | count -------+------------ John | 2 James | 2...