当前位置: 首页 > 面试题库 >

MySQL排序计算

易祯
2023-03-14
问题内容

在MySQL中是否可以对2行的计算进行排序?例如,我有2行,lp并且ap我正在尝试执行以下操作:

SELECT * from myTbl WHERE 1 ORDER BY (lp/ap)

这不会引发错误,但是也不会根据该计算结果进行排序。有没有办法做到这一点,还是我必须将lp / ap存储在数据库中?


问题答案:

是的,这是可行的,而且确实可行。查看以下测试:

CREATE TABLE a(a INT, b INT);

INSERT INTO a VALUES (1, 1);
INSERT INTO a VALUES (1, 2);
INSERT INTO a VALUES (1, 3);
INSERT INTO a VALUES (1, 4);
INSERT INTO a VALUES (1, 5);
INSERT INTO a VALUES (1, 6);
INSERT INTO a VALUES (2, 1);
INSERT INTO a VALUES (2, 2);
INSERT INTO a VALUES (2, 3);
INSERT INTO a VALUES (2, 4);
INSERT INTO a VALUES (2, 5);
INSERT INTO a VALUES (2, 6);

SELECT a.a, a.b, (a/b) FROM a ORDER BY (a/b);

+------+------+--------+
| a    | b    | (a/b)  |
+------+------+--------+
|    1 |    6 | 0.1667 | 
|    1 |    5 | 0.2000 | 
|    1 |    4 | 0.2500 | 
|    2 |    6 | 0.3333 | 
|    1 |    3 | 0.3333 | 
|    2 |    5 | 0.4000 | 
|    1 |    2 | 0.5000 | 
|    2 |    4 | 0.5000 | 
|    2 |    3 | 0.6667 | 
|    2 |    2 | 1.0000 | 
|    1 |    1 | 1.0000 | 
|    2 |    1 | 2.0000 | 
+------+------+--------+

SELECT a.a, a.b FROM a ORDER BY (a/b); 将返回相同的结果。



 类似资料:
  • 本文向大家介绍计数排序,包括了计数排序的使用技巧和注意事项,需要的朋友参考一下 计数排序是一种稳定的排序技术,用于根据较小的键对对象进行排序。它计算键值相同的键的数量。当不同键之间的差异不太大时,此排序技术非常有效,否则会增加空间复杂度。 计数排序技术的复杂性 时间复杂度:O(n + r) 空间复杂度:O(n + r) 输入输出 算法 输入:数据数组,数组中的总数 输出:排序后的数组 示例 输出结

  • 计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。 1. 动图演示 2. JavaScript 代码实现 function countingSort(arr, maxValue) { var bucket = new Array(maxValue+1), sortedIndex =

  • 主要内容:计数排序算法的实现思路,计数排序算法的具体实现通过统计序列中各个元素出现的次数,完成对整个序列的升序或降序排序,这样的排序算法称为 计数排序算法。 接下来,我们为您系统地讲解计数排序算法。 计数排序算法的实现思路 假设待排序序列为 {4, 2, 2, 8, 3, 3, 1},使用计数排序算法完成升序排序的过程为: 1) 找到序列中的最大值(用 max 表示)。对于 {4, 2, 2, 8, 3, 3, 1} 序列来说,最大值是 8。 2) 创

  • 问题内容: 我有这张桌子(简体): 我需要从表中选择所有项目,并按以下方式排序: 1.价格> 0.00首先的项目,按价格ASC排序 2.价格= 0.00最后的项目,按ID排序 我尝试了这个: 我得到类似的结果 我如何建立查询 ? 感谢您的时间 问题答案: 这将达到目的。

  • 问题内容: 在这里可以找到很多类似的问题,但是我认为没有一个人能够充分回答这个问题。 如果可以的话,我将继续从当前最受欢迎的问题开始,并使用其示例。 本例中的任务是获取数据库中每个作者的最新帖子。 该示例查询产生不可用的结果,因为它并不总是返回最新的帖子。 当前接受的答案是 不幸的是,这个答案是简单而简单的错误,并且在许多情况下产生的结果比原始查询更不稳定。 我最好的解决方案是使用形式的子查询 我

  • 问题内容: 我有这样的查询: 但是,当我打印出来时,它会自动进行1,2,3,4,5的排序。我们如何在不更改数据库结构的情况下保持顺序(2,4,1,5,3)? 谢谢! 问题答案: 我问这个: mysql按问题排序 我得到的答案和所有功劳归于他们: 您可以使用CASE运算符指定顺序: 在PHP中,你可以像这样: