Ответы пользователя по тегу PostgreSQL
  • Как вместо вывода каждой строки сделать группировку с подсчетом количества в SQL?

    @VitaliiVV
    мимопроходил
    количество строк которые нужно посчитать - нужно обернуть в агрегатную функцию COUNT,
    и в конце запроса после условий сгруппировать по столбцам БЕЗ агрегатных функций.
    Должно получиться что-то такое -
    SELECT COUNT(contacts.id) AS Id_Qty, contact_group.name AS group
    FROM contacts
    INNER JOIN contact_group
    ON contacts.group_id = contact_group.id
    WHERE contacts.path
    LIKE '43/44/45/%'
    AND contacts.id != 45
    GROUP BY contact_group.name

    код можно сократить если использовать алиасы для имен таблиц
    например SELECT c.id FROM contacts AS c (при работе с несколькими таблицами)
    (в MS SQL Server можно опустить и AS - просто писать название колонки через пробел,
    и 'INNER', там джоин без указания типа по умолчанию - как раз иннер)
    p.s. и еще я сомневаюсь в порядке вывода, думаю если нужно количество айдишников для групп, логичнее выводить их в виде - группа1- 10 штук, группа2 - 5
    Ответ написан
    1 комментарий