Как я могу реализовать SQL-запрос, который группирует мои выходные данные, если поля имеют одинаковые значения, и добавляет новое поле счетчика?

0

Я не так в SQL, и у меня есть следующая проблема.

Я должен реализовать простой запрос SELECT, который возвращает список всех записей в таблицу, и это очень просто:

SELECT
    MD_CD.id,
    MD_CD.market_details_id,
    MD_CD.commodity_details_id
FROM MarketDetails_CommodityDetails         AS MD_CD

которые возвращают что-то вроде:

id                   market_details_id    commodity_details_id
--------------------------------------------------------------
177                  13                   41                  
178                  12                   43                  
179                  12                   13                  
180                  12                   11                  
181                  12                   38                  
182                  12                   39                  
183                  12                   40                  
184                  12                   42 
185                  12                   42

Ok моя проблема заключается в том, что я хочу, чтобы сгруппировать строки, имеющие одинаковые значения в market_details_id и commodity_details_id. Я хочу также добавить счетчик числа этих строк.

Так, например, учитывая последние 2 строки, я хочу, чтобы эти строки группировались в одну строку, и мне нужен новый счетчик, содержащий значение 2 (потому что у меня есть 2 строки с одинаковыми значениями этих двух полей).

Поэтому я думаю, что хочу получить что-то вроде этого:

                 market_details_id    commodity_details_id     counter
------------------------------------------------------------------------------
                  13                   41                       1                 
                  12                   43                       1                   
                  12                   13                       1                   
                  12                   11                       1                   
                  12                   38                       1                   
                  12                   39                       1                   
                  40                   40                        1                   
                  12                   42                       2 

Как я могу реализовать это поведение в моем запросе?

  • 0
    Подсказка: GROUP BY . Вы должны также включить результаты, которые вы хотите в вопросе, если ответ не так прост.
  • 0
    Группировка по предложению и новый столбец в качестве количества (*)
Теги:
database
rdbms

1 ответ

2
Лучший ответ
SELECT
    COUNT(MD_CD.id) As Counter,
    MD_CD.market_details_id,
    MD_CD.commodity_details_id
FROM MarketDetails_CommodityDetails  AS MD_CD
GROUP BY   MD_CD.market_details_id,  MD_CD.commodity_details_id
  • 0
    Хорошо, это работает ... Я попытался добавить счетчик WHERE> 1 в конце этого запроса (чтобы отфильтровать результат запроса), но он не работает. Как я могу это исправить?
  • 0
    Я решил использовать счетчик HAVING> 1
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню