1

次の表があるとします。

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

私がやりたいのは、sqlselectステートメントにYes/ Yes + Noを適用し、最大値のファイル名をエコーすることです。

はいといいえは時々更新されるので、方程式を処理するために別の列を作成する方が良いでしょうか、それともSQLステートメントで方程式を使用できますか?そして、これについては、選択されたステートメントはどのようになりますか?

ありがとう

4

2 に答える 2

6

のため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デモ

于 2012-10-25T03:26:55.287 に答える
2

このアプローチを使用できます。

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
于 2012-10-25T03:24:31.030 に答える