Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изчислете средната стойност между колоните чрез сравняване на два реда в SQL Server

Мисля, че можете просто да използвате min() и max() за по-лесно получаване на времената за двойките оферта/приложение. Останалото е просто агрегиране и още агрегиране.

Обработката, която описвате, изглежда е:

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;

Това прави предположения, които са в съответствие с предоставените данни – че състоянията нямат дубликати за двойките оферта/приложение и че одобрението винаги е след преглед.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Експортиране на данни от двоичен файл (изображения) от SQL чрез съхранена процедура

  2. Използване на променлива в заявка OPENROWSET

  3. Как да избера ТОП 5 ПРОЦЕНТА от всяка група?

  4. Конкатенация на низове на SQL Server с Null

  5. SQL Server трябва да разделя данните, но има само стандартно издание