informatica:base_de_datos:sql_server:sql_server_agrupacion_rank_avanzado
Agrupacion Sacando otro dato
-- Test data DECLARE @TestTable TABLE (id INT, home INT, DATE DATETIME, player VARCHAR(20), resource INT) INSERT INTO @TestTable SELECT 1, 10, '2009-03-04', 'john', 399 UNION SELECT 2, 11, '2009-03-04', 'juliet', 244 UNION SELECT 5, 12, '2009-03-04', 'borat', 555 UNION SELECT 3, 10, '2009-03-03', 'john', 300 UNION SELECT 4, 11, '2009-03-03', 'juliet', 200 UNION SELECT 6, 12, '2009-03-03', 'borat', 500 UNION SELECT 7, 13, '2008-12-24', 'borat', 600 UNION SELECT 8, 13, '2009-01-01', 'borat', 700 -- Answer SELECT id, home, DATE, player, resource FROM (SELECT id, home, DATE, player, resource, RANK() OVER (PARTITION BY home ORDER BY DATE DESC) N FROM @TestTable )M WHERE N = 1 -- and if you really want only home with max date SELECT T.id, T.home, T.date, T.player, T.resource FROM @TestTable T INNER JOIN ( SELECT TI.id, TI.home, TI.date, RANK() OVER (PARTITION BY TI.home ORDER BY TI.date) N FROM @TestTable TI WHERE TI.date IN (SELECT MAX(TM.date) FROM @TestTable TM) )TJ ON TJ.N = 1 AND T.id = TJ.id
SELECT * FROM ( SELECT id_tarifa_cliente, id_servicio, prioridad, RANK() OVER (PARTITION BY id_servicio ORDER BY prioridad ASC) itemprioridad FROM TablaTarifaConsolidada ) AS w WHERE w.itemprioridad = 1
Grupo de archivos PRIMARY lleno
problema con agrupaciones grandes :
Msg 1105, Level 17, State 2, Line 46 No se pudo asignar espacio para el objeto 'dbo.WORKFILE GROUP large record overflow storage: 144053627453440' de la base de datos 'tempdb' porque el grupo de archivos 'PRIMARY' está lleno. Elimine archivos innecesarios, quite objetos del grupo de archivos, agregue archivos adicionales al grupo de archivos o establezca la opción de crecimiento automático para los archivos existentes en el grupo de archivos con el fin de crear espacio en el disco.
informatica/base_de_datos/sql_server/sql_server_agrupacion_rank_avanzado.txt · Última modificación: 2025/04/07 23:26 por admin