Я сейчас пытаюсь SELECT
DISTINCT FirstNames
в GROUP
, используя Microsoft Access 2010.
Упрощенные соответствующие столбцы моей таблице выглядит следующим образом:MS-Access SQL DISTINCT GROUP BY
+----+-------------+-----------+
| ID | GroupNumber | FirstName |
+----+-------------+-----------+
| 1 | 1 | Peter |
| 2 | 1 | Bob |
| 3 | 1 | Peter |
| 4 | 2 | Rosemary |
| 5 | 2 | Jamie |
| 6 | 3 | Peter |
+----+-------------+-----------+
Моя текущая таблица содержит два столбца, к которым я хочу применить этот процесс (отдельно), но я должен просто повторить этот процесс для другого столбца. Номер группы столбцов является упрощением, моя таблица фактически группирует все строки за десять дней вместе, но я уже решил эту проблему.
И я хотел бы, чтобы вернуть это:
+-------------+------------+
| GroupNumber | FirstNames |
+-------------+------------+
| 1 | Peter |
| 1 | Bob |
| 2 | Rosemary |
| 2 | Jamie |
| 3 | Peter |
+-------------+------------+
Это означает, что я хочу все Distinct FirstNames для каждой группы.
Обычный DISTINCT
игнорирует границы группы и упоминает только один раз. Все агрегированные функции уменьшают мой результат до одного значения или вообще не работают с строками. Доступ также не поддерживает SELECT
столбцы, которые не являются агрегатами или в операторе GROUP BY
.
Все остальные ответы, которые я нашел либо хотят, чтобы заполнить, не применимы к MS Access, либо решаются путем обработки данных способами, не применимыми к моему делу. (стандартизованные языки хорошая вещь, не так ли?)
Мой текущий (недействительный) запрос выглядит следующим образом:
SELECT GroupNumber,
DISTINCT FirstNames -- This is illegal, distinct applies to all
-- columns and doesn't respect groups.
FROM Example AS b
-- Complicated stuff to make the groups
GROUP BY GroupNumber;
Этот запрос является один раз вещь, и используется для анализа 58000 строка Excel таблица экспортируется из другой базы данных (не моя ошибка), поэтому оптимизация для времени выполнения не требуется.
Я хотел бы достичь этого исключительно через SQL и без VBA, если это вообще возможно.
Просто используйте 'SELECT DISTINCT GroupNumber, FirstNames' – Lamak
Но что бы вернуть groupNumber: 1,2, 3 и FirstNames: Питер, Боб, Розмари, Джейми, Питер –
Нет, не будет. Вы попробовали? – Lamak