Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据mysql中使用GROUP BY的列选择特定行_Mysql_Sql_Select_Count_Distinct - Fatal编程技术网

根据mysql中使用GROUP BY的列选择特定行

根据mysql中使用GROUP BY的列选择特定行,mysql,sql,select,count,distinct,Mysql,Sql,Select,Count,Distinct,以下是我的表格记录: item_code | qty 001 1 001 1 002 2 002 2 003 2 004 1 005 3 这是我的代码,用于选择不同的项目\u代码以及基于分组依据数量的总数量: select item_code, sum(qty) as qty from imp_inv gr

以下是我的表格记录:

item_code   |   qty

001             1
001             1
002             2    
002             2  
003             2
004             1
005             3
这是我的代码,用于选择不同的
项目\u代码
以及基于
分组依据
数量
的总数量:

select item_code, sum(qty) as qty
from imp_inv
group by item_code
这就是结果:

item_code   |   qty

001             2
002             4    
003             2
004             1
005             3
item_code   |   qty

002             2    
002             2  
003             2
我正在努力的是,如何选择一个带有where子句的
项目\u code
,这就是我所尝试的:

select item_code, sum(qty) as qty
from imp_inv where qty = 2
group by item_code
这就是结果:

item_code   |   qty

001             2
002             4    
003             2
004             1
005             3
item_code   |   qty

002             2    
002             2  
003             2
上面的代码只是选择数量为2的
项目_code
,我想要的是根据其数量的总计数选择一个
项目_code
,这是我想要的结果:

item_code   |   qty

001             2  
003             2
希望你们都能理解我的问题,谢谢你们的帮助

更新

我删除所有select查询中的distinct

我将商品代码的数量更改为3

我将计数更改为总和。

请尝试以下操作:

 HAVING count(qty) = 2
试试看:

select q.item_code, q.qty from 
(select item_code as item_code, count(qty) as qty from imp_inv group by item_code) as q
where q.qty=2

您不应该将列重命名为已经作为列名存在的别名,正如您刚才注意到的那样,这会让人困惑

其中qty=2指的是数量,当您将其更改为HAVING qty=2时,它指的是别名将(数量)计为数量

只需使用一个不同的名称,如count(qty)作为cnt


顺便说一句,您不需要DISTINCT,因为它总是对所有列和GROUP BY altready返回一个不同的值列表。

您确定您使用的是
计数(数量)
,而不是
(总和(数量)
?样本数据和结果与您显示的查询不匹配。@ypercube:是的,先生,我使用的是计数(数量),它对我有效。@Matthew,查询中是否需要
DISTINCT
?无法
选择计数(数量)…按项目分组\u code
(您的第一次查询)将显示
item_code=2
4
。与您显示的数据不同。@ypercube:Hi sir,在我的第一次查询中,我选择了distinct及其总计数,我没有对item_code=2使用where子句,如果我错了,请纠正我,先生,谢谢您的帮助。是的,这是我的打印错误。修复了。真的,所有这些
distinct
都是redun唐太斯。