sql >> Databáze >  >> RDS >> Sqlserver

Vypočítejte průměr mezi sloupci porovnáním dvou řádků v SQL Server

Myslím, že stačí použít min() a max() pro zjednodušení získat časy pro páry nabídka/aplikace. Zbytek je jen agregace a další agregace.

Zdá se, že zpracování, které popisujete, je:

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;

To vytváří předpoklady, které jsou v souladu s poskytnutými údaji – že stavy nemají duplikáty pro páry nabídka/aplikace a že schválení je vždy po kontrole.




  1. SQL Server 2005 Jak vytvořit jedinečné omezení?

  2. Problém s připojovacím řetězcem ve webovém konfiguračním souboru

  3. Chování Oracle Parallel Query s nástroji IDE jako SQL Developer nebo Toad

  4. Chyba syntaxe readyStatement