[英]finding the maximum value of a field of a MySQL query result
我有這個查詢:
select
id_re_usr,
year(time) as AYear,
DAYOFYEAR(time) as ADay,
DATE_FORMAT(time, "%m-%d-%y") as date,
count(*) as TotalPerDay
from numrequest
where id_re_usr = "u1"
group by id_re_usr, AYear, ADay
order by AYear, ADay
它輸出類似
date TotalPerDay
------------------------
01-01-87 1
01-09-12 5
02-09-12 17
03-09-12 1
我如何在不使用php或更改查詢來更改當前輸出的情況下找到最大的TotalPerDay。
我試圖做到這一點,它的工作原理
$max=0;
while($row=mysql_fetch_array($results)){
if($max<$row['TotalPerDay']){ $max= $row['TotalPerDay'];}
}
但是沒有直接的方法嗎?
如果修改查詢,則輸出應為
date TotalPerDay max
----------------------------------------
01-01-87 1 17
01-09-12 5 17
02-09-12 17 17
03-09-12 1 17
將其與僅最大計數的第二個查詢聯系起來。每天(對於給定用戶)基於最內層查詢的一組每天計數的行。 從那開始,下一個外部函數從該集合中選擇一個MAX()來查找並僅獲得代表最高天數的記錄...由於它將始終返回單行,並連接到原始numRequest表,因此它將是一個笛卡爾,但沒有問題,因為它只有一個記錄,並且無論如何您都希望在每個返回的行上使用該值。
select
id_re_usr,
year(time) as AYear,
DAYOFYEAR(time) as ADay,
DATE_FORMAT(time, "%m-%d-%y") as date,
count(*) as TotalPerDay,
HighestCount.Max1 as HighestOneDayCount
from
numrequest,
( select max( CountsByDate.DayCount ) Max1
from ( select count(*) as DayCount
from numrequests nr
where nr.id_re_usr = "u1"
group by date( nr.time )) CountsByDate
) HighestCount
where
id_re_usr = "u1"
group by
id_re_usr,
AYear,
ADay
order by
AYear,
ADay
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.