MYSQL 获取两个值之间的差异

标签 mysql sql

我想计算从数据库返回的最大值(值)与返回的行值之间的差异。

示例数据

  1. 400
  2. 300
  3. 200
  4. 100

最大值(返回值)= 400

返回结果应该是:

  1. 0(最大值和行值没有区别)
  2. 100
  3. 200
  4. 300

等等

有什么想法可以实现吗?

这是我正在使用的当前 mySQL 语句:

SELECT userName, totalPoints , (totalPoints) AS gap
FROM userTable
WHERE value='1'  
ORDER BY totalPoints DESC

s

最佳答案

试试下面的解决方案。

SELECT A.MaxtotalPoints - A.totalPoints AS GAP
FROM
(
SELECT userName, totalPoints , MAX(totalPoints) MaxtotalPoints
FROM userTable
WHERE value='1'  
) A
ORDER BY GAP;

关于MYSQL 获取两个值之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25329623/

相关文章:

MySQL 守护进程命令行登录挂起

php - 成功上传到文件夹,但mysql上没有数据

java - 如何使用 JDBC 从 ResultSet 中只获取 5 行?

java - 根据特定条件在 Oracle SQL 数据库中添加值

sql - 从表中删除列在另一个表中不存在的行

php - 根据变量等于 1 还是 0 更改查询顺序

PHP MySQL 希腊字母显示为 ????分数

python - Peewee ORM查询结果fn.COUNT是unicode类型,而不是整数

sql - 在 SQL Server 2008 中计算以分钟为单位的时差

mysql - 构成 SQL 语句一部分的二进制哈希?