"Sondan üst üste kaç satırın değeri '2'dir" gibi bir sorgu yapmak istiyorum.

3
1
1
0
2
3
2
2
2

örneğin bu şekilde verilerim sıralanmış. bahsettiğim sorgunun cevabı: 3 çıkmalı. 3'ü aratmış olsaydım, 0 çıkmalıydı.

hangi komutu nasıl kullanmalıyım?

 

gayet amele kod oldu ama aşağıdaki gibi bişey çalıştırırsan istediğin @i değişkenine atıyor. kolon2 olarak bahsedilen senin verdiğin değerler, kolon1'i ise her kayıdın sahip olduğu id olarak düşünebilirsin. yani bu senin verdiğin kolonun dışında bir de id kolonun olmalı ki böyle bişey yapmak zorunda olmasan bile her zaman bi id kolonu bulundurmalısın.

declare @i int
declare @maxid int
declare @val int
set @i =0
set @val=2
select @maxid=max(kolon1) from tablo
--select @maxid
select * into #temp from tablo order by kolon1 desc
--select * from #temp
WHILE @val = 2
BEGIN
select @val=kolon2 from #temp where kolon1=@maxid
SET @i = @i + 1
set @maxid = @maxid - 1
-- PRINT 'The counter : ' + CAST(@counter AS CHAR)
END
set @i = @i - 1
select @i

drop table #temp

tepedeki psychedelic adam

select count(*) from table
where table_id > ( select table_id from table where deger != 2 order by table_id desc limit 1)


denemedim ama buna benzer bir sey isinizi gormeli.

orcu
1

mobil görünümden çık