Я работаю в MS Access, и мне нужно удалить повторяющиеся значения из поля [ref] без использования различных (невозможно использовать для определенного поля в доступе) и группировать по (как я хочу сгруппировать по [типу]).
Я попытался использовать дополнительный подзапрос для дедупликации поля [ref], однако не смог заставить его работать. Приведенный ниже код работает, однако включает в себя повторяющиеся значения в поле [ref].
SELECT
switch(LEFT(t1.[type],1)='C',"Covers",LEFT(t1.[type],1)='P',"PIP") AS type
, COUNT(t1.[ref])
, COUNT(t2.[posted]) AS Total_posted
, format(COUNT(t2.[posted]) / COUNT(t1.[ref]),"0.00%") AS Percentage_posted
FROM
Some_Table AS t1
LEFT JOIN
(
SELECT
t2.[ID]
, t2.[posted]
FROM
Some_Table AS t2
WHERE
t2.[posted] NOT LIKE ('NA')
)
AS t2
ON
t1.[ID] = t2.[ID]
GROUP BY
LEFT(t1.[type],1)
Любая помощь приветствуется!
РЕДАКТИРОВАТЬ: пример сценария ниже
t1. [Ссылка]
Текущий код вернет COUNT для t1. [Ref] как 7, однако я хочу, чтобы вывод возвращал счет 5. 5. 1028 *
Дальнейшее редактирование: код теперь, как показано ниже, однако t3. [Ref] по-прежнему не предоставляет различных значений. Есть идеи, где я иду не так?
SELECT Switch(Left(t1.[type],1)='C',"Covers",Left(t1.[type],1)='P',"PIP") AS type, Count(t3.[ref]) AS CountOfref, Count(t2.[posted]) AS Total_posted, Format(Count(t2.[posted])/Count(t1.[ref]),"Percent") AS Percentage_posted
FROM (additional_data_fields AS t1 LEFT JOIN (Select t2.[ID],t2.[posted] from additional_data_fields as t2 where t2.[posted] not like ('NA')) AS t2 ON t1.[ID] = t2.[ID]) LEFT JOIN (select distinct t3.[ref] from additional_data_fields as t3) AS t3 ON t1.[ref] = t3.[ref]
GROUP BY Left(t1.[type],1)