Проблемы с агрегатными функциями SQL - PullRequest
0 голосов
/ 17 декабря 2009

У меня есть таблица со следующими данными:

id  status  date    part_no part_name 

1   high    1/2/09  55      screw;
1   medium  1/2/09  55      screw; 
2   high    2/2/09  32      plug;
3   low     4/8/09  59      bolt;
4   medium  5/6/09  48      tie;
4   low     5/6/09  48      tie;  

Я хочу написать запрос, который даст мне одну строку на номер идентификатора, и я хочу, чтобы все поля в результате отображались. например, результат моего запроса должен быть:

1   medium  1/2/09  55  screw;
2   high    2/2/09  32  plug;
3   low     4/8/09  59  bolt;
4   low     5/6/09  48  tie; 

Заранее благодарим за любую помощь, которую вы можете оказать.

Ответы [ 2 ]

1 голос
/ 17 декабря 2009
   SELECT id, 
          MIN(status), 
          date, 
          part_no, 
          part_name  
    FROM table
GROUP BY id, date, part_no, part_name

.. это то, что вы собираетесь, но сложность в том, что вы храните строки, поэтому от того, как она применяет функцию MIN к тексту / символам, зависит от db. В нормализованной настройке статус будет отдельной кодовой таблицей, а ключ будет / может быть идентификатором, который будет лучше работать с функцией MIN.

1 голос
/ 17 декабря 2009
SELECT
    id,
    MIN(status),
    MIN(date_part),
    part_name
FROM <table>
GROUP BY
    id,
    part_name
...