sql >> Database >  >> RDS >> Sqlserver

SQL Server:hoe de mediaan berekenen (groeperen op)?

U moet uw code als volgt wijzigen om decimalen te gebruiken

 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;

Momenteel wordt de AVG-opdracht uitgevoerd op een int, daarom is het resultaat een int



  1. Java + Mysql UTF8-probleem

  2. Records van de afgelopen 24 uur ophalen in MySQL

  3. Server versus gegevensbron in verbindingsreeks

  4. MySQL auto-increment kolom springt met 10 waarom?