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

How can I implement an SQL query that group my output if the fields have the same values and add a new counter field?

我不太喜欢 SQL,我遇到了以下问题。

我要实现一个简单的SELECT查询,把return所有记录的列表放到一个table中,很简单:

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

return 类似于:

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_idcommodity_details_id。我还想添加这些行数的计数器。

因此,例如,考虑到最后 2 行,我希望将这些行分组在一行中,并且我想要一个包含值 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 

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

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