用SQL查找组中属性最大值的ID

科班

如果我们有一个简单的表(SQLite 语法):

CREATE TABLE Receptions (
    ID INTEGER PRIMARY KEY AUTOINCREMENT,
    ID_Patients INTEGER NOT NULL, 
    ID_Doctors INTEGER NOT NULL,
    StartDateTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP);

填充了一些 ID,为每个患者获取医生最新日期的最佳 SQL 查询是什么?是否可以以某种方式优化以下示例以使其运行更快?

SELECT ID_Patients pid, ID_Doctors did FROM Receptions INNER JOIN 
    (SELECT MAX(StartDateTime) maxDate, ID_Patients pid FROM Receptions GROUP BY pid) a 
    ON a.pid = pid AND a.maxDate = StartDateTime;

我想知道是否有人可以解释这个查询是如何执行的,以及在服务器端创建了哪些数据结构(假设有所有必需的索引)。

戈登·利诺夫

对于相关子查询,这可能会更快地工作:

SELECT r.*
FROM Receptions r
WHERE r.StartDateTime = (SELECT MAX(r2.StartDateTime)
                         FROM FROM Receptions r2
                         WHERE r2.pid = r.pid 
                        );

为了提高性能,您需要在Receptions(pid, StartDateTime).

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询以按语句查找组中的最大值

来自分类Dev

用Groovy XmlSlurper查找属性的最大值

来自分类Dev

用Groovy XmlSlurper查找属性的最大值

来自分类Dev

查找组中具有最大值的行

来自分类Dev

在对象数组中查找属性的最大值

来自分类Dev

在字典中查找对象的属性的最大值

来自分类Dev

在字典中查找对象的属性的最大值

来自分类Dev

从相同的ID中查找excel中的最大值

来自分类Dev

SAS proc sql仅在组内缺失/非缺失中查找最小值/最大值

来自分类Dev

如何通过sql获取组中的最大值

来自分类Dev

从SQL中的多对多关系中查找最大值

来自分类Dev

用列表递归查找最大值

来自分类Dev

用optim()查找方程的最大值

来自分类Dev

获取组中最大值的ID

来自分类Dev

通过 id 从对象数组中获取属性的最大值

来自分类Dev

查找巨大的ascii文件中包含的最大值和一组最大值(以科学计数法表示)

来自分类Dev

在一组列中查找最大值,并在相应行中检索值

来自分类Dev

Python中按组的最大值

来自分类Dev

sql查询性能:查找最大值

来自分类Dev

为每个组ID设置组的最大值

来自分类Dev

在R中为data.table按组查找最大值的索引

来自分类Dev

在R中为数据表按组查找最大值的索引

来自分类Dev

在C中查找char的最大值

来自分类Dev

在CUDA中查找矩阵的最大值

来自分类Dev

在嵌套列表中查找最大值

来自分类Dev

在列表中查找最大值

来自分类Dev

在行中查找最大值

来自分类Dev

在熊猫列中查找最大值

来自分类Dev

查找文件中的最大值