sql - 我可以计算名称在第一个查询中出现的次数的子查询

标签 sql sql-server subquery

这是我目前的代码:

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

我想要某种子查询或计算名称出现次数的东西。可以看到Agon出现了两次,Apollo Akka只出现了一次。

关于我应该写什么的任何提示?

最佳答案

我不知道 MySQL(你实际使用的是哪个产品?),但是在 MS-SQL 中这个

ORDER BY MAX(Name) ASC

甚至无法编译。您不能按不在 SELECT 列表中的列进行排序。

如果您想获得原始结果集,名称的频率在集合本身中,并且您使用的是 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

关于sql - 我可以计算名称在第一个查询中出现的次数的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37182614/

相关文章:

MySql 使用嵌套查询检查最旧的记录与当前记录

sql - 如何在 SQL 中找到所有行的每组最大值?

sql-server - 识别 AWS RDS 上的 SQL Server 死锁

mysql - MySQL 中可以预定义查询吗?

SQL JSON - 从数组中获取特定值

sql-server - 更新单个表上的两个不同行时发生死锁

mysql - sql将嵌套选择子查询结果集存储到变量中

mysql 选择一个联合,其中一个中的值不会出现在另一个中

sql - 对于SQL,每种连接类型的效率排名是多少

c# - 如何使用自动增量列将集合保存为用户定义的数据类型?