在mysql中使用查询结果获取最高值
我有一个查询结果列在mysql中使用查询结果获取最高值,mysql,Mysql,我有一个查询结果列 +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 2007-05-27 | 220
+------+------+------------+--------------------+
| 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 |
+------+------+------------+--------------------+-----------+
计算子查询中
daily\u typing\u pages
字段的最大值,并将其作为派生表连接到主查询中,无需连接条件:
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
使用此查询不必使用联接条件。也可以使用此查询
select *,(select max(daily_typing_pages) from your_table) as max_daily from your_table
在该查询中,您可以将新列附加为max\u daily,其值为max(daily\u typing\u pages)您可以使用这样的方法
select *, HighestValue = (select max(TotalAmount) from [dbo].[Order]) from [NorthWindDemo].[dbo].[Order]
您可以将
交叉联接
与返回最大值的派生表一起使用。如果您向我们展示表的结构,我们可能能够提供一个具体的查询。
select *, HighestValue = (select max(TotalAmount) from [dbo].[Order]) from [NorthWindDemo].[dbo].[Order]