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

SQL Server:jak obliczyć medianę (grupuj według)?

Musisz zmienić kod, aby używał ułamków dziesiętnych w następujący sposób

 SELECT
   dst,
   AVG(sp)
FROM
(
   SELECT
      dst,
      cast(sp as decimal(5,2)) sp,
      ROW_NUMBER() OVER (
         PARTITION BY dst 
         ORDER BY sp ASC, id ASC) AS RowAsc,
      ROW_NUMBER() OVER (
         PARTITION BY dst 
         ORDER BY sp DESC, id DESC) AS RowDesc
   FROM dbo.cars SOH
) x
WHERE 
   RowAsc IN (RowDesc, RowDesc - 1, RowDesc + 1)
GROUP BY dst
ORDER BY dst;

Obecnie polecenie AVG jest wykonywane na int, dlatego wynikiem jest int



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie się z SQL Server LocalDB za pomocą JDBC

  2. 3 sposoby wyodrębnienia miesiąca z daty w SQL Server (T-SQL)

  3. Jak WYBRAĆ * ale bez Nazwy kolumn muszą być unikalne w każdym widoku

  4. Instrukcja UPDATE kolidowała z ograniczeniem REFERENCE - SQL Server / TSQL Tutorial, część 76

  5. Konwersja wyników Select do skryptu wstawiania — SQL Server