Sunil Bansode Ответов: 1

Sql - запрос, чтобы узнать, сколько раз значения строк изменялись для каждой строки


У меня есть следующая таблица в базе данных SQLserver
Я хочу получить количество раз, когда оперативная память изменилась
-----------------------
sr  Machinename   RAM
----------------------
1.  Comp-1        20
2.  Comp-2        40
3.  Comp-1        15
4.  Comp-1        10
5.  Comp-2        40
6.  Comp-2        30 
----------------------

Я хочу следующий вывод
-----------------------------------------
sr  Machinename   No.of time RAM changed
-----------------------------------------
1.  Comp-1        3
2.  Comp-2        2 
-----------------------------------------

Примечание:Comp-2 имеет 3 строки, но 1 строка имеет одинаковое значение ОЗУ, поэтому она не считается измененным значением

Что я уже пробовал:

WITH CTE AS(
  SELECT ROW_NUMBER() OVER(PARTITION BY Compname ORDER BY RAM desc) as rowid,Compname, RAM
	FROM tblA) 
	select * from cte

1 Ответов

Рейтинг:
0

Maciej Los

В зависимости от того, что вы подразумеваете под "чтобы получить количество раз, когда оперативная память изменилась"...

Попробовать это:

SELECT Machinename,  COUNT(RAM) AS CountOfRAM
FROM YourTable
GROUP BY Machinename


или:
SELECT Machinename, COUNT(DISTINCT RAM) AS CountOfRAM
FROM YourTable
GROUP BY Machinename