sql >> データベース >  >> RDS >> PostgreSQL

'as'キーワードを使用しても列が存在しないというエラー

    where errors >= 1を置き換えます (cast(a.count as decimal) * 100 / b.count)>=1を使用 エラーと呼ばれる列はなく、派生列があるため:

    select a.date, (cast(a.count as decimal) * 100 / b.count) as errors
      from (select date(time) as date, count(status)
              from log
             where status != '200 OK'
             group by date
             order by date asc) as a
      join (select date(time) as date, count(status)
              from log
             group by date
             order by date asc) as b
        on a.date = b.date
     where (cast(a.count as decimal) * 100 / b.count) >= 1
     order by errors desc; 
    

    または

    上記のように以下のように使用できます:

    select *
      from (select a.date, (cast(a.count as decimal) * 100 / b.count) as errors
              from (select date(time) as date, count(status)
                      from log
                     where status != '200 OK'
                     group by date
                     order by date asc) as a
              join (select date(time) as date, count(status)
                     from log
                    group by date
                    order by date asc) as b
                on a.date = b.date) q
     where errors >= 1
     order by errors desc;
    

    サブクエリ内。



    1. mysql-月と年のみを指定した日付範囲でデータを取得する方法

    2. 参照テーブルの特定のキーに一致する一意の制約はありません

    3. PHPを使用してOracleにBLOBとして画像をアップロードする

    4. Python'float64'はMySQLタイプに変換できませんが、手動クエリでは問題ありません