2016-11-17 128 views
0

编辑:对不起,严格要求..MySQL GROUP BY(if)

我想GROUP BY变量只有当另一个变量是相等的。

我有这样的:

username  name  forename 

jpumpkin_01 Pumpkin Jack 
jpumpkin_02 Pumpkin Jack 
pnice   Nice  Paul 
mpumpkin  Pumpkin Michael 

我显示与内容:

SELECT * FROM ... WHERE ... 

此列出所有条目:

Pumpkin Jack 
Pumpkin Jack 
Nice  Paul 
Pumpkin Michael 

“南瓜杰克” 的双重上市。我使用GROUP BY“名”

... GROUP BY name 

现在,“南瓜杰克”上市有一段时间,但“南瓜迈克尔”是群太,和disapeared。

我怎样才能列出迈克尔?

感谢您的答案和提示..

RGS

[R

+1

'GROUP BY name,forename' ??? ???如果不是,样本数据和期望的结果将有助于解释您的真正含义。 –

+0

当forename = forename时你的意思是什么?您可以按表达式进行分组,但在表达式中,不能将1行值与另一行进行比较,而必须将行内的标量值与同一行,变量等进行比较。GROUP BY CASE WHEN forename ='Matt'THEN forename ELSE'Not Matt'END将为Matt创建2行1并且为非Matt创建 – Matt

回答

-1

的GROUP BY不是有条件的。所以你可以做的是这样的:“SELECT * FROM ... WHERE ... GROUP BY name,forename”。

+0

谢谢注册! –