Sqlite group by之后的表达式具有相同的结果
为什么查询:Sqlite group by之后的表达式具有相同的结果,sqlite,Sqlite,为什么查询: SELECT id, MAX(probe_time) AS Expr1 FROM app_states GROUP BY logon_id 及 具有相同的id结果 我希望为每个用户选择具有最大或最小时间的行。恐怕您必须在此处使用子查询 SELECT id, probe_time FROM app_states WHERE probe_time = (SELECT MAX(probe_time) from app_states GROUP BY logon_id) 顺便说一句,S
SELECT id, MAX(probe_time) AS Expr1
FROM app_states
GROUP BY logon_id
及
具有相同的id
结果
我希望为每个用户选择具有最大或最小时间的行。恐怕您必须在此处使用子查询
SELECT id, probe_time
FROM app_states
WHERE probe_time = (SELECT MAX(probe_time) from app_states GROUP BY logon_id)
顺便说一句,SQLite对最小值/最大值进行了有趣的优化:
假设存在适当的索引,将优化以下形式的查询以在对数时间内运行:
SELECT MIN(x) FROM table;
SELECT MAX(x) FROM table;
为了实现这些优化,它们必须完全按照上面所示的形式出现——只更改表和列的名称。不允许添加WHERE子句或对结果进行任何运算。结果集必须包含一列。“最小”或“最大”函数中的列必须是索引列
-为什么选择
id
但按logon\u id
分组?这是子查询,我想在以后的联接中使用id。我想像上面那样使用linq查询进行选择,并使用id进行连接。
SELECT MIN(x) FROM table;
SELECT MAX(x) FROM table;