sql-server - 如何选择跨群体的最高共同值(value)

标签 sql-server linq

`假设我有一组包含 2 个字段的数据 - 类型和日期。我有兴趣查找(如果存在)各种类型的最大共同日期。这在 SQL 或 LINQ 中更容易实现吗?

鉴于下面的数据,结果应该是 2018-02-01,因为这是所有类型的最大通用日期。如果没有这样的日期,则不会返回任何数据。

Type, Date
---------
1,2018-03-01
1,2018-02-01
1,2018-01-01

2,2018-02-01
2,2018-05-01
2,2018-01-01

3,2018-01-01
3,2018-03-01
3,2018-02-01

最佳答案

你可以使用:

SELECT TOP 1 [Date], COUNT(*) OVER(PARTITION BY Date) AS cnt
FROM tab
ORDER BY cnt DESC, [Date] DESC

DBFiddle Demo

关于sql-server - 如何选择跨群体的最高共同值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49493630/

相关文章:

sql-server - 将 DDL 从 Oracle 迁移到 SQL Server

sql - 批量创建多个 UDF - SQL Server

c# - 动态 Linq 谓词在 C# MongoDB 驱动程序中引发 "Unsupported Filter"错误

linq - 使用 Linq 在 Order by 中进行数学计算

php - 使用带有 dblib 驱动程序的 PDO 从 Microsoft Azure Transact SQL 获取数据时出现问号而不是俄语字符

sql-server - 如何将 View 从一个数据库复制到另一个数据库

c# - 返回 LINQ 结果时何时调用 ToList 的经验法则

c# - 在linq中选择两件事,一件来自内部json数组,一件来自外部json数组

c# - 如何将谓词表达式分解为查询?

php - CodeIgniter ODBC 问题