Запрос для получения частотности.

Тема в разделе "Базы данных", создана пользователем elcaste, 27 июн 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Код:
    есть таблица результатов соревнований:
    ----------------------------
    | pilot | race_num | place |
    ----------------------------
    |   1   |     21   |   1   |
    |   3   |     21   |   3   |
    |   2   |     21   |   2   |
    |   4   |     21   |   4   |
    |   5   |     22   |   2   |
    |   2   |     22   |   3   |
    |   3   |     22   |   1   |
    |   4   |     22   |   4   |
    |   2   |     23   |   2   |
    |   3   |     23   |   1   |
    |   4   |     23   |   3   |
    |   3   |     24   |   1   |
    |   6   |     24   |   2   |
    pilot - id пилота
    race_num - номер заезда
    place - занятое место

    Каким запросов можно получить такой сет:
    Код:
    -------------------------
    | pilot | place |   q   |
    -------------------------
    |   1   |   1   |   1   |
    |   1   |   2   |   0   |
    |   1   |   3   |   0   |
    |   2   |   1   |   0   |
    |   2   |   2   |   2   |
    |   2   |   3   |   1   |
    и т.д.
    ?
    q = количество заездов, в которых пилот занял место place.

    Т.е. нужно для каждого пилота получить число, сколько раз он занимал конкретное место.
     
  2. AndreyD2

    AndreyD2

    Регистр.:
    21 окт 2008
    Сообщения:
    194
    Симпатии:
    67
    Select pilot, place, count(*) from @tab where place <=3
    group by pilot,place
    order by pilot,place
     
    elcaste нравится это.
Статус темы:
Закрыта.