Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Oblicz średnią między kolumnami, porównując dwa wiersze w SQL Server

Myślę, że możesz po prostu użyć min() i max() dla uproszczenia, aby uzyskać czasy dla par stawka/aplikacja. Reszta to tylko agregacja i więcej agregacji.

Opisane przez Ciebie przetwarzanie wygląda następująco:

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 sprawia, że ​​założenia są zgodne z dostarczonymi danymi – stany nie mają duplikatów dla par stawka/aplikacja, a zatwierdzenie jest zawsze po sprawdzeniu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co oznacza symbol SQL # i jak jest używany?

  2. SQL Server:Tylko ostatni wpis w GROUP BY

  3. Korzystanie z zestawu wyników z podrzędnego WYBORU w przypadku napotkania zduplikowanych wierszy

  4. Wybierz pierwsze n rekordów dla każdego odrębnego identyfikatora w SQL Server 2008

  5. Grupowanie elementów z równomierną dystrybucją w SQL