如果字段具有相同的值并添加新的计数器字段,如何实现对输出进行分组的SQL查询?

时间:2018-05-28 11:35:17

标签: mysql sql database rdbms

我不是很喜欢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

好的我的问题是我想将具有相同值的行分组到 market_details_id commodity_details_id 。我还想添加这些行数的计数器。

因此,例如,考虑到我想要的最后两行,这些行被分组在一行中,我想要一个包含值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 

如何在查询中实现此行为?

1 个答案:

答案 0 :(得分: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