powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Можно ли сгруппировать данные под одним именем?
19 сообщений из 19, страница 1 из 1
Можно ли сгруппировать данные под одним именем?
    #39493980
Сергей2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Собственно, вопрос к спецам
Есть БД с клиентами, где есть ФИО и страна гражданства, можно ли всех неГраждан РФ в запросе переименовать к примеру как Нерезиденты и посчитать их количество и % от всех клиентов?
К примеру
Андрей Иванов - RUS
Василий Петров - RUS
Джон Смит - USA
Сергей Петренко - UKR

SELECT [ФИО], COUNT[Гражданство], COUNT[Гражданство]/(SELECT COUNT(Гражданство) FROM Клиенты)
FROM Клиенты
GROUP BY Гражданство

В этом случае получается 50% RUS, 25% USA, 25% URK
А нужно 50% RUS 50% Нерезиденты

Или нужно добавлять в базу дополнительный столбец и уже по нему делать запросы?
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39493986
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей2017,


Код: sql
1.
2.
3.
4.
select 
  ФИО
 ,case when Гражданство = 'RUS' THEN 'RUS' else 'Нерезиденты' end as Gr
FROM Клиенты



а дальше группируйте как надо..
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39493991
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей2017,

пардон, через iif в Access

Код: vbnet
1.
 iif(Гражданство = 'RUS','RUS', 'Нерезиденты') as ss
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39493995
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
SELECT -Sum([Гражданство]="RUS") As Резиденты,
       -Sum([Гражданство]<>"RUS") As Нерезиденты,
       Нерезиденты/Count(*) As ДоляНерезидентов
FROM Клиенты
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494016
Сергей2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Не дает посчитать сумму, т.к. поле текстовое, а не цифровое
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494023
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей2017,

Код: sql
1.
2.
3.
4.
SELECT -Sum(iif([Гражданство]="RUS",1,0)) As Резиденты,
       -Sum(iif([Гражданство]<>"RUS", 1, 0)) As Нерезиденты,
       Нерезиденты/Count(*) As ДоляНерезидентов
FROM Клиенты
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494030
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей2017__Michelle,

Не дает посчитать сумму, т.к. поле текстовое, а не цифровоеА пробовали?
То, что оно текстовое, и так вижу. Ведь сравнение и построено для текстового поля.
Это суммы не значений полей, а результатов логической операции сравнения.
Все должно работать.
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494036
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наутилусСергей2017,

Код: sql
1.
2.
3.
4.
SELECT -Sum(iif([Гражданство]="RUS",1,0)) As Резиденты,
       -Sum(iif([Гражданство]<>"RUS", 1, 0)) As Нерезиденты,
       Нерезиденты/Count(*) As ДоляНерезидентов
FROM Клиенты

Зря мой запрос "поправили".
Он верен.
А чего минусы-то оставили? У меня они на месте, здесь - нет.
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494048
Сергей2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наутилус,

SELECT COUNT(ФИО), [Гражданство]
FROM Клиенты
GROUP BY [Гражданство],
HAVING IIF [Гражданство] = ('RUS', 'RUS', 'NORUS')

Ругается
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494057
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей2017,

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

Код: sql
1.
2.
SELECT COUNT(ФИО), iif ([Гражданство] = 'RUS', 'RUS', 'NORUS') as Grazhdanstvo
FROM Клиенты



это должно работать (нет под рукой аксесса проверять). а дальше уже группируйте и считайте количество
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494058
Сергей2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Простите, ваш запрос действительно верен.
Просто мне данные нужно представить немного в другом виде, потому что потом буду добавлять сюда дополнительные столбцы типа зарплаты и т.д.
Вид вроде этого
Гражданство - Процент - Зарплата общ - Количество отработанных дней общ
Резиденты - 50% - 60 - 22
Нерезиденты - 50% - 40 - 22
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494068
Сергей2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наутилус,

Сейчас запрос выдается, но к сожалению не группируется по "Гражданство" - он лишь заменил все значения, которые не RUS на NORUS

GROUP BY Гражданство не помогает - он не считает NORUS.
Может сделать с подзапросом? Или не поможет?
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494079
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей2017наутилус,

Сейчас запрос выдается, но к сожалению не группируется по "Гражданство" - он лишь заменил все значения, которые не RUS на NORUS

GROUP BY Гражданство не помогает - он не считает NORUS.
Может сделать с подзапросом? Или не поможет?
select
count(ФИО),
Grazhdanstvo
from (
SELECT ФИО, iif ([Гражданство] = 'RUS', 'RUS', 'NORUS') as Grazhdanstvo
FROM Клиенты)
group by Grazhdanstvo
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494102
Сергей2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наутилус,

не работает(
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494108
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей2017,



sql запрос:
Код: sql
1.
2.
SELECT Count(tTemp.ФИО) AS [Count-ФИО], Sum(IIf([Гражданство]="RUS",1,0)) AS Гражданин, Sum(IIf([Гражданство]="RUS",0,1)) AS НЕГражданин
FROM tTemp;
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494136
Сергей2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наутилус,

да, в таком виде запрос составлен верно и все верно считает, как я и писал выше.
вопрос был, можно ли его представить в виде строк
RUS - количество
NORUS - количество
Это принципиальный вопрос, потому что я сюда же хочу потом добавить еще столбец "Зарплата", который также необходимо будет считать в разрезе RUS и NORUS
А в представленном виде он не даст сделать группировку по RUS и NORUS
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494142
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей2017,

Код: sql
1.
2.
3.
4.
5.
SELECT 'RUS' AS xxx, Sum(IIf([Гражданство]="RUS",1,0)) AS Кол
FROM tTemp;
union all
SELECT 'NORUS' AS xxx, Sum(IIf([Гражданство]="RUS",0,1)) AS Кол
FROM tTemp;
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494148
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей2017 можно ли его представить в виде строк
RUS - количество
NORUS - количество
Можно, конечно.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT "Резиденты" As ВидГражданства,
       -Sum([Гражданство]="RUS") As Количество,
       Количество/Count(*) As Доля
FROM Клиенты
UNION ALL
SELECT "Нерезиденты" As ВидГражданства,
       -Sum([Гражданство]<>"RUS") As Количество,
       Количество/Count(*) As Доля
FROM Клиенты
...
Рейтинг: 0 / 0
Можно ли сгруппировать данные под одним именем?
    #39494474
Сергей2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо вам большое за помощь и терпение))
Все работает)
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Можно ли сгруппировать данные под одним именем?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]