Mysql 如果字段具有相同的值,如何实现对输出进行分组的SQL查询并添加新的计数器字段?
我不太喜欢SQL,我有以下问题 我必须实现一个简单的SELECT查询,将所有记录的列表返回到一个表中,非常简单:Mysql 如果字段具有相同的值,如何实现对输出进行分组的SQL查询并添加新的计数器字段?,mysql,sql,database,rdbms,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
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
好的,我的问题是,我想将具有相同值的行分组到市场详细信息\u id和商品详细信息\u id。我还想添加这些行数的计数器
例如,考虑到最后两行,我希望将这些行分组在一行中,并且我希望一个新的计数器恶魔包含值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
如何在查询中实现此行为?提示:
groupby
。如果答案不是那么简单,您还应该在问题中包含您想要的结果。Group by子句和一个新列count(*)提示:Group by
。如果答案不是那么简单,您还应该在问题中包含您想要的结果。Group by子句和一个新列count(*)Ok,它可以工作…我尝试在这个查询的末尾添加一个WHERE Counter>1(以过滤查询结果),但它不起作用。我该如何解决这个问题?因为使用您解释的WHERE子句,我得到了这个错误:“#42S22Unknown column‘counter’in‘WHERE子句’”好的,它工作了……我尝试在这个查询的末尾添加一个WHERE counter>1(以过滤查询结果),但它不工作。我如何解决这个问题?因为使用您所解释的WHERE子句,我会得到以下错误:“#42S22未知列‘WHERE子句’中的‘counter’”
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