Access

Access группировка в запросе: MS Access — группировка данных

MS Access — группировка данных

В этой главе мы расскажем, как рассчитать группу записей в Access. Мы создали поле, которое вычисляет строку за строкой или запись за записью, чтобы создать итоговое поле или поле промежуточных итогов, но что, если бы мы хотели вычислять по группам записей, а не по отдельным. Мы можем сделать это, создав так называемый совокупный запрос .

Совокупный запрос

Совокупный запрос, также известный как итоговый или сводный запрос, представляет собой сумму, массу или групповые данные. Это может быть общая или полная сумма или группа или подмножество записей. Агрегированные запросы могут выполнять ряд операций. Вот простая таблица, в которой перечислены некоторые способы суммирования по группе записей.

S.No Агрегатные функции и описание
1.

сумма

Добавляет значения поля

2.

в среднем

Среднее значение поля

3.

Min

Минимальное (минимальное) значение поля

4.

Максимум

Наибольшее (максимальное) значение поля

5.

подсчитывать

Количество значений (записей)

6.

StDev

Стандартное отклонение значений полей, включая поля даты / времени

7.

Var

Дисперсия значений поля, включая дату / время

сумма

Добавляет значения поля

в среднем

Среднее значение поля

Min

Минимальное (минимальное) значение поля

Максимум

Наибольшее (максимальное) значение поля

подсчитывать

Количество значений (записей)

StDev

Стандартное отклонение значений полей, включая поля даты / времени

Var

Дисперсия значений поля, включая дату / время

Позвольте нам открыть вашу базу данных и перейти к Query Design и включить следующие таблицы –

Закройте это диалоговое окно, и будут показаны следующие два поля, как показано в сетке запросов на следующем снимке экрана.

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

Давайте теперь запустим этот запрос, и вы увидите следующие результаты.

Вот почему названия книг повторяются. Отдельные заказы были размещены здесь для каждой из этих книг, и они были заказаны в разных количествах. Предположим, мы хотим увидеть сводку только того названия книги, которое было указано только один раз. А затем сумма количества, указанного рядом с ним.

Теперь перейдем к представлению «Дизайн» и на вкладке «Дизайн» вы увидите символ Sigma. Это ваша общая кнопка.

Щелкните по символу сигмы, который откроет другую строку под вашим полем в строке таблицы, и отсюда вы можете указать, как вы группируете этот запрос.

Теперь мы сгруппируемся по названию книги, а также суммируем поле количества.

Если мы щелкаем по группам по областям и далее нажимаем на раскрывающееся меню, все опции будут перечислены внизу. В этом случае мы выберем опцию Сумма и затем запустим ваш запрос.

Теперь вы можете видеть каждую отдельную книгу, а также все отдельные заказы, отображаемые рядом с названием книги.

Конкатенация в Access

Мы изучили процесс нормализации, хранения информации в отдельных полях. Иногда вы хотите видеть или просматривать данные вместе, например, объединяя поля имени и фамилии в одно поле. Вы можете отобразить эту информацию вместе, создав вычисляемое поле, объединяющее одну или несколько строк. Вы также можете добавить другие символы, такие как запятая или точка, которую вы можете захотеть.

  • Для объединения в Access есть два разных оператора, которые можно использовать с

    амперсандом (&) и знаком плюс (+) .

  • Амперсанд объединит две строки в одну, тогда как знак плюс объединит две строки и распространит значения NULL, например, если одно значение равно NULL, все выражение будет равно нулю.

Для объединения в Access есть два разных оператора, которые можно использовать с амперсандом (&) и знаком плюс (+) .

Амперсанд объединит две строки в одну, тогда как знак плюс объединит две строки и распространит значения NULL, например, если одно значение равно NULL, все выражение будет равно нулю.

пример

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

Теперь давайте добавим таблицу tblCustomers, чтобы закрыть диалоговое окно отображения таблицы. Мы попробуем объединить некоторые простые именованные поля.

Давайте теперь добавим поля имени и фамилии и запустим запрос.

Как видите, имя и фамилия разделены на два разных поля.

Нам нужно отобразить эту информацию вместе.

Вернитесь в представление конструктора и в третьем поле создайте новое поле с именем полное имя . Теперь добавьте полное имя и введите выражение, объединяющее эти два поля.

Давайте запустим запрос, и вы увидите новое вычисляемое поле.

Он может объединять информацию из этих двух полей вместе, но не совсем так, как мы этого хотим. Он запускает весь этот текст вместе, потому что он работает так, как мы его просили. Теперь нам нужно попросить Access добавить пробел между информацией из этих двух полей.

Давайте теперь вернемся к представлению «Дизайн» и добавим еще один раздел к этому выражению.

Добавьте пробел внутри кавычек и еще один амперсанд. Это заставляет Access брать информацию из этого поля имени; добавьте его с пробелом, а затем добавьте информацию из поля фамилии в самом конце. Теперь запустите запрос еще раз, и вы увидите следующие результаты.

2.4. Запрос с группировкой

Допустим, необходимо создать выборку, содержащую наименование клиента, общее количество размещенных у него в 1998 году заказов, среднюю стоимость заказа и полную стоимость всех заказов.

Записи в результирующем наборе данных должны быть расположены в порядке убывания полной стоимости заказов.

Для решения поставленной задачи добавьте в новый запрос таблицы Заказано, Заказы и Клиенты. Конструктор запросов автоматически проставит постоянные связи, существующие между этими таблицами на уровне базы данных. В бланк запроса перенесите поле Название из таблицы Клиенты и поле КодЗаказа из таблицы Заказы. В определения следующих двух полей бланка запросов введите одну и ту же строку: ССиr([Цена]*[Количество]*(1-[Скидка])/100). Последним добавьте поле Дата Размещения из таблицы Заказы. Для того чтобы воспользоваться возможностями группировки, нужно нажать на панели инструментов кнопку Групповые операции (кнопка с изображением греческой буквы ∑). В бланке запроса появится строка с названием

Групповая операция, для каждого поля в котором указано значение Группировка. Измените эти значения для второго поля на значение Count, для третьего — на Avg, для четвертого — на Sum, после чего присвойте полям новые имена — Количество заказов, Средняя стоимость и Полная стоимость. Для поля ДатаРазмещения значение группировка необходимо заменить на Условие (после чего конструктор автоматически снимет флажок Вывод на экран ) и в строке Условие отбора ввести следующую строку: Between #01.01.98# And #31.12.98#. Последнее, что нужно сделать — указать для поля Полная стоимость порядок сортировки по убыванию. Получившийся запрос представлен на рис. 2.4.

Р ис. 2.4. Запрос с группировкой

Пояснения

а). Операция Группировка предназначена для объединения записей, имеющих одинаковые значения в группируемых полях, в одну запись. Для полей, у которых указана статистическая функция (Sum, Count и т.д.), производятся соответствующие вычисления. В нашем примере операция группировка указана для поля Название. Это значит, что из всех записей таблицы Клиенты, удовлетворяющих условию по полю Дата Размещения, в результирующий набор данных войдет только одна запись для каждого клиента. При этом поле Количество заказов будет содержать количество записей, соответствующих конкретному клиенту в таблице

Заказы. Например, если для какого-либо из клиентов в течение 1998 года было выписано 12 счетов, то в поле Количество заказов, соответствующих данному клиенту, будет отображено значение 12. Точно так же в полях Средняя стоимость и Полная стоимость — будут вычислены среднее значение и сумма стоимости всех заказов по каждому клиенту. Описание статистических функций SQL приведено в таблице 2.4.

б). В таблице 2.3 перечислены все возможные значения свойства групповые операции.

Таблица 2.3. Возможные значения свойства Групповые операции.

Функция

Комментарий

Группировка

Указывается для полей, по совпадающим значениям которых происходит объединение записей в одну.

Выражение

Указывается для вычисляемых полей.

Условие

Указывается для полей, которые не должны попасть в результирующий набор данных, но по которым проверяется условие. Условие для такого поля проверяется до выполнения операции группирования. Если для поля ввести условие и в поле. Групповые операции указать группировка, то условие будет проверяться уже после группировки. Для первого случая в операторе SQL используется предложение WHERE, a для второго —

HAVING.

Таблица 2.4. Статистические функции.

Функция

Описание

Sum

Возвращает сумму значений, содержащихся в заданном поле запроса в записях, группируемых в одну. Синтаксис: Sит(выражение). Аргумент выражение может содержать либо название поля, либо выражение, выполняющее какие-либо вычисления. Выражение может включать имена полей, константы и функции. Функции могут быть определяемыми пользователем (в модуле), но не могут быть другими статистическими функциями. Функция

Sum пропускает записи со значением Null в данном поле.

Avg

Вычисляет арифметическое среднее набора чисел, содержащихся в указанном поле запроса в записях, входящих в одну группировку. Синтаксис: Avg(выpaжeнue). Замечания относительно аргумента выражение и полей со значением Null те же, что и для функции Sum.

Min, Max

Возвращают соответственно минимальное и максимальное значения из набора значений, содержащихся в указанном поле запроса в пределах одной группировки. Синтаксис: Мin(выражение), Мах(выражение). Замечания — те же.

Count

Возвращает количество записей, объединяемых в одну при группировке. Синтаксис: Соиnt(выражение). Выражение может быть таким же, как и для выше описанных статистических функций. Функция Count, так же как и остальные функции, не подсчитывает записи, содержащие Null в полях, указанных в выражении. Поэтому, чтобы избежать глупых ошибок, нужно указывать либо обязательные для ввода поля (которые гарантированно будут содержать какое-либо значение — например, первичный ключ), либо подстановочный знак звездочки (например, Count(*)).

StDev

Вычисляет величину смещенного стандартного отклонения по набору значений, содержащихся в указанном поле запроса для каждой группировки. Синтаксис: StDev(выраженue). Замечания по поводу выражения и полей со значением Null те же, что и для функции Sum. Кроме того, если группировка содержит меньше двух записей, то функция возвращает значение Null, что означает невозможность вычисления стандартного отклонения. Стандартное отклонение (среднеквадратичное отклонение) — параметр, который указывает величину разброса функции распределения около среднего значения. Он равен квадратному корню из момента для квадрата отклонений от среднего.

Var

Возвращает значение смещенной дисперсии, вычисляемой по набору значений, содержащихся в указанном поле запроса для каждой группировки. Синтаксис: Var(выражение). Замечания по поводу выражения и полей со значением Null те же, что и для функции Sum. Если группировка содержит меньше двух записей, функция возвращает значение Null, что означает невозможность вычисления дисперсии. Дисперсия — квадрат значения среднеквадратичного отклонения, мера отличия значений в группе от среднего.

First, Last

Возвращают значение поля соответственно из первой и последней записи набора записей в пределах каждой группировки. Синтаксис: First(выражение), Last(выражение). Выражение — такое же, как и для остальных статистических функций. Поскольку записи обычно возвращаются без какого-либо специального порядка (кроме случаев, когда запрос содержит предложение ORDER BY), эти функции возвращают случайные данные

в). Следует обратить внимание на то, что хотя для полей Средняя стоимость и Полная стоимость были указаны групповые операции Avg и Sum соответственно, после сохранения запроса конструктор подставил названия этих функций непосредственно в определение полей, а значение групповой операции изменил на Выражение. В то же самое время, поле Количество заказов осталось без изменений, поскольку в качестве выражения для функции Count указано просто имя соответствующего поля таблицы.

г). При вычислении полей Средняя стоимость и Полная стоимость использовалась функция ССиr, являющаяся одной из функций преобразования типов. Хотя чаще эти функции используются при программировании на Visual Basic, в запросах тоже иногда приходится их использовать. Чаще всего эти функции используются в вычисляемых полях запросов. Например, если из таблицы в запрос добавить поля Количество и Стоимость, а потом добавить вычисляемое поле Цена:[Стоимость]/[Количество], то в результирующем наборе данных в этом поле появятся значения, содержащие огромное количество знаков дробной части.

Управление доступом к группам и приложениям

Управление доступом к группам и приложениям

Предыдущий Следующий Для корректного отображения этого контента должен быть включен JavaScript

    org/» typeof=»BreadcrumbList»>
  1. Использование службы Oracle Identity Cloud
  2. Выполнение пользовательских задач
  3. Настройка параметров пользователя
  4. Управление группой и приложением Доступ

После того, как вы запросите доступ к группе и приложению со страницы «Каталог», вы сможете просмотреть свой доступ и запросы на странице «Мой профиль».

Темы

  • Группа запросов и доступ к приложениям

  • Просмотр группы и доступ к приложению

  • Просмотр запросов доступа к группам и приложениям

Группа запросов и приложение Доступ

Запросить доступ к группам, членом которых вы хотите стать, и к приложениям, которые вы хотите использовать. Если вы не видите группу или приложение на странице Каталога, администратор не разрешил запрашивать группу или приложение. Чтобы сделать группу или приложение доступными, обратитесь к администратору.

  1. Щелкните свое имя пользователя, а затем выберите Каталог в раскрывающемся меню.
  2. На странице Каталог выберите Группы или Приложения.
  3. Щелкните значок плюса (+) для группы или приложения, к которым вы хотите получить доступ.
  4. В диалоговом окне Добавить доступ введите причину запроса и нажмите кнопку ОК. Вам отправлено два электронных письма.

    • Первое электронное письмо подтверждает ваш запрос. Чтобы перейти на вкладку «Мои запросы» и убедиться, что ваш запрос был отправлен, щелкните ссылку «Мои запросы» в электронном письме.

    • Второе электронное письмо подтверждает ваш доступ. Чтобы перейти на вкладку «Мой доступ» и убедиться, что вам предоставлен доступ, щелкните ссылку «Мой доступ» в электронном письме.

Просмотр группы и приложения Доступ

  1. В консоли «Мой профиль» щелкните вкладку «Мой доступ».
  2. Чтобы просмотреть доступ к вашей группе или приложению, щелкните Группы или Приложения. В списке перечислены группы и приложения, к которым у вас есть доступ.

Просмотр групп и доступ к приложениям Запросы

Чтобы просмотреть свои запросы на доступ к группам и приложениям, в консоли «Мой профиль» щелкните вкладку «Мои запросы». В списке перечислены ваши запросы на доступ к группе и приложению.

Для каждого запроса отображается следующая информация:

  • Имя группы или приложения.

  • Обоснование, которое вы указали при запросе группы или приложения

  • Дата и время отправки запроса

  • Флажок рядом с каждым запросом означает, что вам предоставлен доступ к группе или приложению.

sql — Группа доступа MS по

спросил

Изменено 3 года, 6 месяцев назад

Просмотрено 333 раза

У меня есть большая таблица базы данных доступа, и ее часть приведена ниже, и я хочу получить минимальное значение по группе, которое является минимальным значением для 3, 5, 9,. … Я пробовал в запросе, используя минимальное значение Group by, но оно не может дать мне:

Я хочу как:

 Точка ParaA Modvalue MinofParaA
    3 0,02345610000 1,1304602327522
    5 0,541734307717087 0,592591581187
    7 4,4094560894325 0,393245327246
    9 5,5450476528689 1,034165859885
    11 ….. …….
    13 ……. …….
 

Часть моей базы данных:

 Point ParaA Modvalue
    3 1.01537282042687E-07 1.1304602327522
    3 5.41734307717087Э-06 1,592591581187
    3 4.4094560894325Э-05 2.393245327246
    3 5.5450476528689E-05 1.034165859885
    3 5.6210847721211E-05 1.9269298608176
    3 7.33007048018759Э-05 3.17251848741499
    3 1.26935918181651E-04 7.577150615919
    3 1.27908837646644E-04 4.466340029852
    9 0,205576008517929 32,1580666011739
    9 0,2058403012141 6,080246238675
    9 0,205888794863275 4,48451872092713
    9 0,205970780609684 30,2695831828562
    9 0,206476048361761 2,3287221969481
    9 0,206500794273712 4,48657381393526
    9 0,206507173199086 3,54388543810806
    9 0,206701769548586 77,5713240109687
    5 0,127510144904596 0,692657575677875
    5 0,127593565284236 16,812067790848
    5 0,127765437607527 1,5228257707606
    5 0,12803789311445 13,1857111
    5 0,12821555669427 15,488318488284
    5 0,128929582513692 1,24166466944275
    5 0,129137495154857 20,811097854043
    5 0,129492706221109 1,73300570963531
    5 0,130290993399936 6. 7783307471853
    5 0,130328615583637 11,879218642047
 

Я пробовал: Группировать по и мин (минимальное значение), но это не дает мне того, что я хочу.

  • sql
  • мс-доступ
  • группа-по
6

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

 select t.point, first(t.paraA), min(t.minofpara)
из YourTable t
группировать по t.point
 

Второй столбец этого запроса по существу возвращает значение «случайной» записи в каждой группе точек. Измените YourTable на имя вашей таблицы.

РЕДАКТИРОВАТЬ: Судя по вашим комментариям к моему ответу, вам просто требуется:

 выберите t.point, min(t.paraa)
из YourTable t
группировать по t.point
 

Чтобы выбрать записи, которые содержат этот минимум, вы можете использовать:

 выберите t1.* из внутреннего соединения YourTable t1
(
    выберите t2. point, min(t2.paraa) как mp
    от YourTable t2
    сгруппировать по t2.point
) т3
на t1.point = t3.point и t1.paraa = t3.mp
 
11

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *