2016-05-12 47 views
2

显示这是当前的代码,我有:子查询,我可以算的次数名称第一个查询

select Name, ECU, Identifier, Value, Max(Filetime) as "Filetime" 
from dbo.view_1 
where ECU='EBS7' and Identifier='88' and Value='2459579' or identifier ='87' and Value='2431629' 
group by Name, ECU, Identifier, Value 
ORDER BY 
    MAX(Name) ASC 

这是结果我得到:Result of query

我想某种子查询或某个名称出现次数。我们可以看到阿贡出现两次,阿波罗阿卡只出现过一次。

我应该写什么的提示?

+1

你使用MySQL或MS SQL服务器? (不要标记不涉及的产品...)您的AND/OR用法可能需要一些括号? – jarlh

回答

0

我不知道MySQL,但是在MS-SQL这一

ORDER BY MAX(Name) ASC 

(您实际使用哪些产品是?)甚至不会编译。您不能通过不在SELECT列表中的列进行排序。

如果你希望得到您的原始ResultSet的,名称为在设定本身的频率,并且正在使用MS-SQL,你可以使用一个CTE:

WITH theset AS 
(select Name, ECU, Identifier, Value, Max(Filetime) as "Filetime" 
from dbo.view_1 
where ECU='EBS7' and Identifier='88' and Value='2459579' or identifier ='87' and Value='2431629' 
group by Name, ECU, Identifier, Value) 

SELECT set.*,CountNames.NameCount 
FROM 
    theset set 
INNER JOIN 
    (SELECT Name,Count(*) AS NameCount FROM theset GROUP BY Name) CountNames 
ON set.Name=CountNames.Name 
+0

我正在使用ms sql 2014版本。 'Order BY max(name)asc'实际上起作用。由于我有一个组,我需要有一些聚合函数来使用order。这种方式列表按名称排序。 谢谢,我会尝试你的代码! –

+0

最大(名称)可能“工作”,因为它编译,但它没有意义。当Name已经在GROUP BY子句中时,Name对于集合中的每个成员都会公理地总是= MAX(Name)。 ORDER BY Max(Name)等同于ORDER BY(Name),并且令人困惑,所以我建议将它取出。现在让我们看看CTE代码是否工作 – SebTHU

+0

在'Select set。*,CountNames.NameCount'和'ON set.Name = CountNames.Name'编译错误。是一个不正确的语法。 –

1

您可以使用此相关子查询:

Select Name, ECU, Identifier, Value, 
     Max(Filetime) as "Filetime", 
     (select count(*) 
     from dbo.view_1 t2 
     where t2.Name = t1.Name and 
      ECU ='EBS7' and 
      ((Identifier='88' and Value='2459579') or 
      (identifier ='87' and Value='2431629')) as cnt 
from dbo.view_1 t1 
where ECU ='EBS7' and 
     ((Identifier='88' and Value='2459579') or 
     (identifier ='87' and Value='2431629')) 
group by Name, ECU, Identifier, Value 
ORDER BY MAX(Name) ASC 
+0

谢谢,但cnt显示错误的值。 Agon的名字Agon出现2次,但cnt表明它出现561次。对于艾萨cnt是564. –

+0

@AdnanHossain我忘了在子查询的WHERE子句中包含其他谓词。请检查我所做的修改。 –

+0

仍然无法使用。根据cnt,Agon出现了39次,其余时间持续。 –

相关问题