1

テーブルには、「server」、「directory」、「usage」、「datetime」の4つの列が含まれています。すべてのサーバーに共通の10個のdirがあります。サーバーのデータを取得する必要があります。これは、1日の最新の日時の使用状況です。たとえば、ディレクトリBを持つサーバーAがある場合、数日間、複数回の使用があります。すべてのサーバーのクエリによってレポートされるデータが必要です。これは、毎日の最新のエントリに対するすべての対応するディレクトリの使用量です。

4

2 に答える 2

1

私があなたの質問を正しく理解していれば、すべてのサーバーとディレクトリの最後の使用状況を確認したいでしょう。次のような特定の列を持つ「usagestats」という名前のテーブルがあるとします。

SELECT a.server, a.directory, a.`usage`, a.datetime
    FROM usagestats as a INNER JOIN (
        SELECT server, directory, max(datetime) datetime
            FROM usagestats
            GROUP BY server, directory
        ) AS b ON (
            a.server = b.server
            and a.directory = b.directory
            and a.datetime = b.datetime
        )
    ORDER BY a.server, a.directory, a.datetime
于 2012-10-07T10:13:12.850 に答える
0

あなたの質問を正しく理解しているかどうかわかりません。

MySQL には IF() 関数があり、最初のパラメーターの条件に従ってステートメントの 1 つを返します。

数値が大きく、列が 2 つしかない列からデータを選択する場合は、次のように IF ステートメントを使用します。

SELECT 
if(columnA > columnB, columnA , columnB) as grtColumn,
if(columnA > columnB,'columnA is bigger', 'columnB is bigger') as whichColumnWasGrt

from yourtable;

ヘルプ: mysql リファレンス - if() 関数(IF ステートメントと IF() 関数があります - 異なるものです!

于 2012-10-07T10:57:53.713 に答える