簡體   English   中英

選擇特定字段的值大於同一字段最大值一半的行

[英]Select rows where specific field has value more than half of max value of the same field

我想知道是否有一種方法可以選擇特定字段的值大於同一字段最大值一半的行。

例如,我們有一個包含3個字段(id,name,rate)的結果集,其中rate是別名。 如果最大速率為70 ,則查詢應返回rate > 353570一半)的所有行。

就像是:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM