单个查询使用两列的count(*)从mysql表中获取行

时间:2014-05-14 21:59:45

标签: mysql

我有一个名为Table2的表,其定义如下。

Id  int False   
Source  nvarchar(MAX)   True    
Dest    nvarchar(MAX)   True    
Port    nvarchar(MAX)   True    
DgmLen  nvarchar(MAX)   True    
Flags   nvarchar(MAX)   True    
Payload nvarchar(MAX)   True    

现在我要打印此表格的所有行,其中“source& DgmLen”计数大于6。

首先,我使用此查询来获取表中的源数:

Select DgmLen,Port from Table2 group by Port,DgmLen having count(*) > 6

它已经获取了以下数据:

DgmLen      Port
7-48    5-139

现在我要打印表2中所有“DgmLen = 7-48”和“Port = 5-139”的行。

如何在单个查询中写入此内容,以获取在DgmLen和端口字段/ coloumns 中具有唯一值集的行。

1 个答案:

答案 0 :(得分:0)

只需将结果集加入您的表格:

SELECT * FROM Table2 NATURAL JOIN (
  SELECT DgmLen, Port FROM Table2 GROUP BY Port, DgmLen HAVING COUNT(*) > 6
) t