在mysql中使用查询结果获取最高值

时间:2017-05-30 05:37:16

标签: mysql

我有一个结果列

的查询
+------+------+------------+--------------------+
|  id  | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
|   1  | John | 2007-01-24 |        250         |
|   2  | Ram  | 2007-05-27 |        220         |
|   3  | Jack | 2007-05-06 |        170         |
|   3  | Jack | 2007-04-06 |        100         |
|   4  | Jill | 2007-04-06 |        220         |
|   5  | Zara | 2007-06-06 |        300         |
|   5  | Zara | 2007-02-06 |        350         |
+------+------+------------+--------------------+

我想在另一列中将此结果的最大值输出为

+------+------+------------+--------------------+-----------+
|  id  | name | work_date  | daily_typing_pages | Max  daily|
+------+------+------------+--------------------+-----------+
|   1  | John | 2007-01-24 |        250         | 350       |
|   2  | Ram  | 2007-05-27 |        220         | 350       |
|   3  | Jack | 2007-05-06 |        170         | 350       |
|   3  | Jack | 2007-04-06 |        100         | 350       |
|   4  | Jill | 2007-04-06 |        220         | 350       |
|   5  | Zara | 2007-06-06 |        300         | 350       |
|   5  | Zara | 2007-02-06 |        350         | 350       |
+------+------+------------+--------------------+-----------+

4 个答案:

答案 0 :(得分:0)

计算子查询中select * from yourtable inner join (select max(daily_typing_pages) as max_daily from yourtable) t 字段的最大值,并将其作为派生表连接到主查询而不使用连接条件:

select yourtable.*, (select max(daily_typing_pages) from yourtable) as max_daily from yourtable

没有连接条件的连接将导致将两个查询中的每条记录与另一个表中的每条记录相关联。

或者,如果要避免连接,请在选择列表中使用相关子查询:

$("#txtbx").keyup(function()
{ 
 setTimeout(go,2000);
 
});

function go()
{
 $("#hide").hide();
}

答案 1 :(得分:0)

set @maxValue = (select max(daily_typing_pages) from your_table); 
select *, @maxValue from your_table

使用此功能,您不必使用连接条件。

答案 2 :(得分:0)

您也可以使用此查询

 select *,(select max(daily_typing_pages) from your_table) as max_daily from your_table

在此查询中,您可以将新列添加为max_daily,其值为max(daily_typing_pages)

答案 3 :(得分:0)

你可以使用这样的东西,

select *, HighestValue = (select max(TotalAmount) from [dbo].[Order]) from [NorthWindDemo].[dbo].[Order]