【发布时间】:2021-02-18 19:34:40
【问题描述】:
我无法找到非零的最小值。
例如,我有一张表格,显示每个人赚的钱,其中一些人一无所获。我想排除那些没有任何收入的人,并找到收入最低的人的名字(即非零)。
我试过了:
SELECT name, earnings
FROM paylist
WHERE earnings = (SELECT min(earnings)
FROM paylist) AND EXISTS (SELECT *
FROM paylist
WHERE earning <> 0)
但我意识到 min(earnings) 将变为 0 并且在输出中不返回任何值。 我应该如何编写查询?
另外,有人告诉我可能有两种写法: 1. 使用聚合函数(例如 COUNT、SUM、MAX、MIN) 2.不使用任何聚合函数 有什么区别?
【问题讨论】:
-
"find the person" - 如果只有一个人,那么您可以使用 ORDER BY 和 LIMIT 1。
-
抱歉,我编辑了问题,输出应该列出所有收入最少的人的名字。