Получите отсортированные данные из каждого столбца в каждом столбце SQL
У меня есть набор данных, в котором я хочу, чтобы минимальное значение находилось сверху от каждого столбца в SQL, но он получил отсортированные строки на основе отсортированного порядка.
НАПРИМЕР:
Что я уже пробовал:
SELECT ExtractProfile , CountryCode -- , TEST.STARTTS AS STARTTS , SUM(CASE WHEN TEST.STARTTS = CONVERT(DATE,GETDATE()) THEN TEST.StoreSuccess ELSE 0 END) Sucesses0 , SUM(CASE WHEN TEST.STARTTS = CONVERT(DATE,GETDATE()) THEN 1 ELSE 0 END) Stores0 , SUM(CASE WHEN TEST.STARTTS = Dateadd(dd,-1,CONVERT(DATE,GETDATE())) THEN TEST.StoreSuccess ELSE 0 END) Sucesses1 , SUM(CASE WHEN TEST.STARTTS = Dateadd(dd,-1,CONVERT(DATE,GETDATE())) THEN 1 ELSE 0 END) Stores1 , SUM(CASE WHEN TEST.STARTTS = Dateadd(dd,-2,CONVERT(DATE,GETDATE())) THEN TEST.StoreSuccess ELSE 0 END) Sucesses2 , SUM(CASE WHEN TEST.STARTTS = Dateadd(dd,-2,CONVERT(DATE,GETDATE())) THEN 1 ELSE 0 END) Stores2 --INTO #TEMP FROM (SELECT d.ExtractProfile , s.StoreNbr , s.CountryCode , CONVERT(DATE,d.StartTS) AS STARTTS --, SUM(CASE WHEN s.Result = 'Success' THEN 1 ELSE 0 END) Successes --, SUM(CASE WHEN s.Result != 'Success' THEN 1 ELSE 0 END) Failures --, COUNT(DISTINCT StoreNbr) Stores , MAX(CASE WHEN s.Result = 'Success' THEN 1 ELSE 0 END) AS StoreSuccess FROM TEST s (NOLOCK) INNER JOIN TEST1 d (NOLOCK) ON s.ExtractId = d.Id WHERE d.StartTS > CONVERT(VARCHAR(11),GETDATE() - 25) --and s.storenbr=1000 --and d.rundate = dateadd(dd,-1,convert(varchar(11),getdate())) GROUP BY d.ExtractProfile , s.StoreNbr , s.CountryCode , CONVERT(DATE,d.StartTS) ) AS TEST2 GROUP BY ExtractProfile , CountryCode ORDER BY Sucesses0 ASC ,Sucesses1 ASC,Sucesses2 ASC,Sucesses3 ASC