Недавно понадобилось сделать выборку из базы данных с подсчётом уникальных значений в разных колонках. Зачем это было нужно - не скажу, потому что это внутренняя информация.
Итак, есть у меня таблица documents
и таблица objects
.
objects
id - primary key
document_id - foreign key
f_input - integer
f_output - integer
Вот для полей f_input
и f_output
мне нужно было
выдать количество уникальных значений для каждого документа.
from (
select number, f_input
from documents
join objects on documents.id = objects.document_id
union all
select number, f_output
from documents
join objects on documents.id = objects.document_id
) as x
group by number
order by number
Не знаю, лучший ли это способ, но он работает, а в данный момент мне больше и не нужно.