1

Konu: uniqe id

gun        ay    yil        sicaklık    enlem    boylam    lokasyon_id
1            1    1999        23            22.50    30.55    sayi 1
1            1    1999        23            22.50    30.44    sayi 2
2            1    1999        18            22.50    30.80    sayi 3
3            1    1999        12            26.10    30.80    sayi 4
4            1    1999        22            22.50    30.55    sayi 1
..            ..    ..                ..                ..        ..        ..

Yukarıdaki tabloda, eslesen enlem ve boylam çiftleri için uniqe  lokasyon_id  değerleri atamak istiyorum.
Amacım lokasyon_id değerlerini atadiktan sonra, diger field'lerden bagımsız olarak lokasyon_id ile gruplanmıs ortalama sıcaklık degerlerini hesaplamak.
Simdiden tesekkur ederim..

Son düzenleyen, erdal (25.01.2012 20:02:09)

2

Re: uniqe id

sql ile şu şekilde yapabilirsin

SQL
1

2
3
4
5
6
7
8
SELECT b.gun,b.ay,b.yil,b.sicaklik,a.* FROM

(
SELECT enlem,boylam,ROW_NUMBER() over (ORDER BY enlem,boylam) AS lokasyon_id FROM senintablon GROUP BY enlem,boylam
) a
LEFT JOIN
(
SELECT * FROM senintablon
) b ON b.enlem=a.enlem AND b.boylam=a.boylam

3

Re: uniqe id

Tesekkur ederim..Ben su sekilde yaptim:

Visual Fox Pro
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
**lokasyon_id'yi siliyorum

Alter Table MyTable Drop Column lokasyon_id
 
**lokasyon_id'yi character olarak tanimliyorum        
Alter Table MyTable Add Column lokasyon_id c (13)        
 
**lokasyon_id'yi Enlem Boylam ciftleri ile dolduruyorum
Scan                                                
    Replace lokasyon_id;
        With ;
        Str(enlem,5,2)+"and"+Str(boylam,5,2)
Endscan
 
**Her lokasyona ait aylik ortalamayi hesapliyorum
Select yil, ay, Avg(sicaklik), enlem, boylam, lokasyon_id ;
    From MyTable ;
    Group By lokasyon_id,yil,ay,enlem,boylam

Ancak character olan  lokasyon_id uzerinden group by ile average almak sakincali olabilir, tam bilmiyorum.
Bu nedenle lokasyon_id'nin sayisal olmasi gerekebilir.

4

Re: uniqe id

Erdalö
O kadar karmasaya gerek yok, basit tek SQL:

Visual Fox Pro
1

2
3
Select yil, ay, enlem, boylam, Avg(sicaklik) ;

    From MyTable ;
    Group By yil,ay,enlem,boylam
Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)
ilk kapak Aydınlar'a, sıradaki gelsin

5

Re: uniqe id

sagol Cetin Abi..

Son düzenleyen, erdal (26.01.2012 22:15:50)