Разработка на коленке

"тут должна быть красивая цитата о программировании"

Подсчёт уникальных значений в разных столбцах на SQL

2011-08-16 13:35

Недавно понадобилось сделать выборку из базы данных с подсчётом уникальных значений в разных колонках. Зачем это было нужно - не скажу, потому что это внутренняя информация.

Итак, есть у меня таблица 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

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