sql >> Databasteknik >  >> RDS >> Sqlserver

Beräkna medelvärde mellan kolumner genom att jämföra två rader i SQL Server

Jag tror att du bara kan använda min() och max() för enkelhets skull för att få tiderna för bud/app-paren. Resten är bara aggregering och mer aggregering.

Bearbetningen du beskriver verkar vara:

select avg(avg_bid_diff)
from (select bid, avg(diff*1.0) as avg_bid_diff
      from (select bid, appid,
                   datediff(second, min(starttime), max(statustime)) as diff
            from t
            where appstatus in ('In Review', 'Approved')
            group by bid, appid
            having count(*) = 2
           ) ba
      group by bid
     ) b;

Detta gör antaganden som överensstämmer med den tillhandahållna informationen -- att statusen inte har dubbletter för bud-/appparen och att godkännande alltid sker efter granskning.




  1. FEL 2002 (HY000):Kan inte ansluta till den lokala MySQL-servern via uttaget '/var/run/mysqld/mysqld.sock' (2)

  2. Felkod:1005. Kan inte skapa tabellen '...' (felnr:150)

  3. MySQL:fråga med två många till många relationer och dubbletter, med fullständiga data från underfrågor

  4. Parallell unnest() och sorteringsordning i PostgreSQL