【发布时间】:2014-01-07 23:10:19
【问题描述】:
在为 Web 应用程序创建 SQL 语句时遇到了小问题。
我有一张带有 to_do_list(id、duration、text)的表格,我只想显示一条最小记录(其中 Duration = minimum),即使有多个记录。
我创造了这样的东西:
Select * from to_do_list where duration = (select min(duration) from to_do_list);
但它显示不止一条记录(我有几个相同持续时间的条目)。
我也试过这个:
Select id, min(duration), text from to_do_list;
但是在执行这个查询之后我收到了一个错误:
“列 'to_do_list.id' 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
我发现 LIMIT 应该可以解决我的问题,但是运行这个后我得到一个错误:
Select * from to_do_list where duration = (select min(duration) from to_do_list) LIMIT 1;
“'limit'附近的语法不正确。”
我使用的是 Microsoft SQL Express Server 2012。
我将不胜感激 U ppl 的任何帮助!
提前致谢。
【问题讨论】:
-
错误是不言自明的,您缺少
group by。如果不按其他东西分组,您就无法聚合。您可能不想要TOP 1,因为该值只是随机的。您需要澄清您正在寻找的结果。
标签: sql sql-server