mysql选择具有最低值的记录

标签 mysql division

我有一张 table

总价 单位 单位名称

我想选择total_price/units最低的记录。

如何在查询中执行除法,然后选择具有最低值的记录?

(我还想按单位名称分组 - 即,如果一个是盎司,一个是升)

最佳答案

您只需在 order by 子句中使用除法即可:

select *
from t
order by total_price / units
limit 1;

为了安全起见 - 如果 units 为 0 - 你可以这样做:

select *
from t
where units <> 0
order by total_price / units
limit 1;

如果您希望通过 unit_name 获得此值,那么您需要使用 min():

select unit_name, min(total_price / units)
from t
group by unit_name

关于mysql选择具有最低值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17507173/

相关文章:

mysql - SQL,自身连接表,按一定时间跨度内创建的顺序

mysql - 在 Laravel 5 应用程序中获取多对多关系的数据透视字段值

mysql - SQLMAP 的两个参数

algorithm - 如何找到除以给定数字的只有 0 和 1 的最小数字?

c++ - 哪个是整数除以 2 的更好选择?

mysql - 重置自增主键sql、mysql

mysql - 如何将 SQL 表行与 XML 命名空间元素进行匹配?

c++ - C++标准:32位和64位的奇怪的有符号/无符号算术除法行为

math - 除法、余数和仅允许实数

ruby - 带整数的 ZeroDivisionError 异常,带 float 的 Nan