簡體   English   中英

SQL Select中兩列之間的最高評分

[英]Highest rating between two columns in sql select

說我有下表:

--------------------
|ID|Yes|No|Filename|
|01|15 |10|1.php   |
|02|12 |5 |2.php   |
|03|6  |1 |3.php   |
--------------------

我想做的是在sql select語句中應用Yes / Yes + No,並回顯最高值的文件名。

“是”和“否”會不時更新,因此最好創建另一列來處理方程式,還是可以在sql語句中使用方程式? 選擇語句的外觀如何?

謝謝

對於MySQL

SELECT  Filename, 
        CAST((Yes / (Yes + No)) AS DECIMAL(10,5)) rating
FROM    table1
WHERE   CAST((Yes / (Yes + No)) AS DECIMAL(10,5)) =
        (
            SELECT MAX(rating)
            FROM
            (
                SELECT CAST((Yes / (Yes + No)) AS DECIMAL(10,5)) rating
                FROM table1
            ) x
        )

SQLFiddle演示

對於SQL Server

SELECT   TOP 1 WITH TIES Filename, 
         (Yes / (Yes + No)) rating
FROM     table1
ORDER BY rating DESC

SQLFiddle演示

您可以使用這種方法:

SELECT TOP 1 sf.Filename
   , (sf.Yes / (sf.Yes + sf.No)) AS RatioValue
FROM dbo.storeFile AS sf
ORDER BY (sf.Yes / (sf.Yes + sf.No)) DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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