[英]MYSQL - how do i select no more than x rows max with the same field value y?
[英]Select rows where specific field has value more than half of max value of the same field
我想知道是否有一種方法可以選擇特定字段的值大於同一字段最大值一半的行。
例如,我們有一個包含3個字段(id,name,rate)的結果集,其中rate是別名。 如果最大速率為70
,則查詢應返回rate > 35
( 35
為70
一半)的所有行。
就像是:
SELECT * FROM (A heavy and large select)as r WHERE r.rate > MAX(rate) / 2
請注意,我不知道什么是最大費率,並希望在單個查詢中執行此操作。
更新
main select是一個非常繁重的查詢,rate是別名,因此使用subquery for max rate需要再次編寫那個繁重的查詢。
它的基本編碼就像你說的那樣:
select * from mytable
where rate > (select max(rate) from mytable) / 2:
with cts as
(select max(rate) as maxRate
from tableName
)
select *
from tableName a join cts b
on a.rate > maxRate/2
沒有測試,但應該工作
並為mysql
select *
from tableName a join (select max(rate) as maxRate from tableName) b
on a.rate > b.maxRate/2
我認為這個未經測試的代碼可能會起作用,
從表組中選擇id,名稱,費率,按名稱,名稱,費率> max(rate)/ 2;
SELECT *
FROM table a
INNER JOIN
(SELECT
id
,MAX(rate) / 2 AS max_rate
FROM table
GROUP BY id) b ON a.id = b.id
WHERE rate > max_rate
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.