Forum

SQL Sorgusu hakkınd...
 
Bildirimler
Hepsini Temizle

SQL Sorgusu hakkında

15 Yazılar
3 Üyeler
0 Reactions
989 Görüntüleme
(@nailisler)
Gönderiler: 152
Estimable Member
Konu başlatıcı
 

Herkese Merhaba,
Soruyu doğru yere mi soruyorum çok emin değilim. Fakat yardımcı olabilirseniz sevirinim.

Bir sQL'de bir aşağıda ki gibi bir tablom var,

-------------------------------------------------------
|ID| IP Adresi | Giriş Tarihi | Giriş Yapan Kullanıcı|
--------------------------------------------------------

bu tabloda şu şekilde bir çıktıya ihtiyacım var

-------------------------------------------
|IP Adresi | Giriş Yapan Kullanıcı sayısı|
-------------------------------------------

Yani IP adresinde kaç kullanıcı giriş yapmış adet
bazı IP'lerde 1 kullanıcı giriş yapmış olabiliyor bazılarında 10 bunun listesi lazım destek olabilirseniz sevirim teşekkürler,

 
Gönderildi : 25/09/2018 14:59

(@cankaya)
Gönderiler: 119
Üye
 

Merhabalar,

Bu sorgu işinizi görecektir. 

select IPAdresi,count(1) as GirisYapanKullaniciSayisi FROM

tablename

group by IpAdresi

 
Gönderildi : 25/09/2018 15:03

(@nailisler)
Gönderiler: 152
Estimable Member
Konu başlatıcı
 

Can bey cevabınız için teşekkürler fakat söyle bir sıkıntı oluştu.

sql çalıştırdığımda liste çıkıyor fakat kullanıcı sayısını toplam veriyor.

mesela şu şekilde ornek vermek isterim.

10.20.10.20 ıp adresinde User1 5 kere sistem açmış ,
10.20.10.20 ip adresinde User2 2 kere sistem açmış olsun

10.20.10.20 | tarih 1 | USER1
10.20.10.20 | tarih 6 | USER2
10.20.10.20 | tarih 2 | USER1
10.20.10.20 | tarih 3 | USER1
10.20.10.20 | tarih 7 | User 2
10.20.10.20 | tarih 4 | USER1
10.20.10.20 | tarih 5 | USER1

sizin sql komutunu çalıştırdığımda 

Ipadresi       | GirisYapanKullaniciSayisi 
10.20.10.20 | 7

şekilde çıkıyor fakat benim istediğim o ip 2 kullanıcı oturum açtığı için 2 çıkması

Ipadresi       | GirisYapanKullaniciSayisi 
10.20.10.20 | 2

tekrar teşekkür ederim.

 
Gönderildi : 25/09/2018 15:23

(@cankaya)
Gönderiler: 119
Üye
 

grubu user bazında yapmalısınız.

 

select IPAdresi,username,count(1) as GirisYapanKullaniciSayisi FROM

tablename

group by IpAdresi,username

 
Gönderildi : 25/09/2018 17:25

(@nailisler)
Gönderiler: 152
Estimable Member
Konu başlatıcı
 

Can bey maalasef kodu çalıştırdığımda herhangi bir çıktı vermiyor,

 

select IPAdres, Kullanici, count(1) as GirisYapanKullaniciSayisi FROM [Giris_Bilgileri] group by IpAdres, Kullanici;

sonuç boş döndü maalesef;

Ama listede aynı ip adresi farklı kullanici olan kayıtlar var ama 🙁

 
Gönderildi : 25/09/2018 17:59

(@nailisler)
Gönderiler: 152
Estimable Member
Konu başlatıcı
 

Merhaba tekrar,

Evet Sonuç boş donmekte Yazdığım tam kod şu şekilde.

SELECT [IPAdres], [Kullanici], count(1) as GirisYapanKullaniciSayisi FROM [Giris_Bilgileri] group by [IPAdres], [Kullanici];

Sonuç;
0 rows affected

SELECT * FROM [Giris_Bilgileri];

Sonuç;
Duration: 00:00:097 / 13583 rows

 
Gönderildi : 29/09/2018 19:57

(@AhmetKoseoglu)
Gönderiler: 108
Estimable Member
 

Merhaba tekrar,

Evet Sonuç boş donmekte Yazdığım tam kod şu şekilde.

SELECT [IPAdres], [Kullanici], count(1) as GirisYapanKullaniciSayisi FROM [Giris_Bilgileri] group by [IPAdres], [Kullanici];

Sonuç;
0 rows affected

SELECT * FROM [Giris_Bilgileri];

Sonuç;
Duration: 00:00:097 / 13583 rows

 

gruplama yaparken hem ip adresi hemde kullanıcı yaptığınız için sorun oluyor gibi tablodaki verileri göremediğim için çokta yorum yapamıyorum ama veriye göre mantık hatası var gibi geliyor sorguda.  sorgunuzdaki gorup by dan sonraki kullanici kısmını kaldırıp tekrar denermisiniz tam istediğiniz sonucu verirmi anlamadım ama bir deneyin isterseniz. 

 
Gönderildi : 30/09/2018 01:27

(@nailisler)
Gönderiler: 152
Estimable Member
Konu başlatıcı
 

Ahmet bey merhaba,

Üstte ki mesajımda belirtmek istediğim tablonun basit hali,

   IPAdresi    | Tarih   | Kullanici
10.20.10.20 | tarih 1 | USER1
10.20.10.20 | tarih 6 | USER2
10.10.10.10 | Tarih 8 | USer3
10.20.10.20 | tarih 2 | USER1
10.20.10.20 | tarih 3 | USER1
10.20.10.20 | tarih 7 | User 2
10.20.10.20 | tarih 4 | USER1
................. | ..........| ..........
10.20.10.20 | tarih 5 | USER1

 

Bunun gibi uzatip giden 14000 'e yakın satir olan bir tablom var
Ben bu tabloda istediğim su

Ipadresi      | GirisYapanKullaniciAdeti
10.20.10.20 | 2 
10.10.10.10 | 1
..................| 5
..................| 3
..................| 1
xx.xx.xx.xx  | 1

gibi bir cikti almak istiyorum. Yani ip adresinde kac kullanici giriş yapmış görmek 

 

 

 
Gönderildi : 30/09/2018 02:07

(@cankaya)
Gönderiler: 119
Üye
 

Yukarda paylaşmış olduğumuz sorgu bu çıktıyı elde eder. Ancak sizin işinizi görmemişti o sonuç. user kolonundaki data ile ilgili bir sıkıntınız olabilir. 

 

http://sqlfiddle.com  buraya datanızın bir kısmını girip link veriseniz size daha sağlıklı bir şekilde yardımcı olabiliriz.

 

""

Merhabalar,

Bu sorgu işinizi görecektir. 

select IPAdresi,count(1) as GirisYapanKullaniciSayisi FROM

tablename

group by IpAdresi

""

 

Ahmet bey merhaba,

Üstte ki mesajımda belirtmek istediğim tablonun basit hali,

   IPAdresi    | Tarih   | Kullanici
10.20.10.20 | tarih 1 | USER1
10.20.10.20 | tarih 6 | USER2
10.10.10.10 | Tarih 8 | USer3
10.20.10.20 | tarih 2 | USER1
10.20.10.20 | tarih 3 | USER1
10.20.10.20 | tarih 7 | User 2
10.20.10.20 | tarih 4 | USER1
................. | ..........| ..........
10.20.10.20 | tarih 5 | USER1

 

Bunun gibi uzatip giden 14000 'e yakın satir olan bir tablom var
Ben bu tabloda istediğim su

Ipadresi      | GirisYapanKullaniciAdeti
10.20.10.20 | 2 
10.10.10.10 | 1
..................| 5
..................| 3
..................| 1
xx.xx.xx.xx  | 1

gibi bir cikti almak istiyorum. Yani ip adresinde kac kullanici giriş yapmış görmek 

 

 

 
Gönderildi : 30/09/2018 02:20

(@nailisler)
Gönderiler: 152
Estimable Member
Konu başlatıcı
 

Can Bey merhaba,

Tablom şu şekilde,

CREATE TABLE [Kullanici_Giris_Bilgileri] (
[Id] bigint IDENTITY (1,1) NOT NULL
, [Kullanici] nvarchar(200) NOT NULL
, [IPAdres] nvarchar(200) NULL
);

 

Ornek Tablo içerigi

INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User2' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User7' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User10' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User2' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User7' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User10' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User1' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User2' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User4' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User5' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User6' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User7' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User8' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User10' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User1' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User2' ,'192.168.1.1');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.1');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User4' ,'192.168.1.1');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User5' ,'192.168.1.1');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User6' ,'192.168.1.1');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User7' ,'192.168.1.1');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User8' ,'192.168.1.1');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.1');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User10' ,'192.168.1.1');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User1' ,'192.168.1.1');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User2' ,'192.168.1.2');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User3' ,'192.168.1.3');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User4' ,'192.168.1.4');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User5' ,'192.168.1.5');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User6' ,'192.168.1.6');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User7' ,'192.168.1.7');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User8' ,'192.168.1.8');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User9' ,'192.168.1.9');
INSERT INTO [Kullanici_Giris_Bilgileri] ([Kullanici] , [IPAdres]) VALUES ('User10' ,'192.168.1.10');

 

İstediğim çıktı şu şekilde 

192.168.1.1 içinde kaç farklı kullanıcı oturum açmış
192.168.1.2 içinde kaç farklı kullanıcı oturum açmış gibi 

K.bakmayın SQL bilgim yok hatalı yazdığım varsa

 
Gönderildi : 30/09/2018 02:49

(@cankaya)
Gönderiler: 119
Üye
 

select t.IpAdres, SUM(t.kul) as DifferentUserLoggedIn FROM (
select IpAdres,count(DISTINCT Kullanici) as kul from [Kullanici_Giris_Bilgileri]
group by IpAdres,Kullanici
) as t
group by t.IpAdres

 

bu sorguyu dener misiniz?

 

Çıktısına buradan bakabilirsiniz. 

http://sqlfiddle.com/#!18/124b2/6  

 
Gönderildi : 30/09/2018 03:13

(@nailisler)
Gönderiler: 152
Estimable Member
Konu başlatıcı
 

Can bey şu hatayı aldım,

 

Error Code: 80040E14
Message : Sorgu ayrıştırılırken hata oluştu. [ Token line number = 2,Token line offset = 82,Token in error = DISTINCT ]
Minor Err.: 25501
Source : SQL Server Compact ADO.NET Data Provider
Num. Par. : 2
Num. Par. : 82
Err. Par. : DISTINCT

 

Ado .net ile bağlantı yaptığım icin galiba bunu desteklemiyor farklı bi yontem deneyeceğim artık desteğiniz icin teşekkürler,

 
Gönderildi : 30/09/2018 03:32

(@nailisler)
Gönderiler: 152
Estimable Member
Konu başlatıcı
 

Tekrar merhaba,

Şu şekilde yazdım satırı istediğim gibi sonuç verdi fakat doğru mudur fikir verebilir misiniz?

 

SELECT IPAdres AS [Type], COUNT(Kullanici) AS [Count] FROM (SELECT DISTINCT Kullanici,IPAdres FROM Kullanici_Giris_Bilgileri) dt GROUP BY IPAdres ORDER BY [Count] DESC

Teşekkürler,

 
Gönderildi : 30/09/2018 04:13

(@cankaya)
Gönderiler: 119
Üye
 

Merhabalar,

 

Doğru bir sorgudur.

 

 
Gönderildi : 02/10/2018 19:40

(@nailisler)
Gönderiler: 152
Estimable Member
Konu başlatıcı
 

Desteğiniz için teşekkürler Can Bey 

iyi günler,

 
Gönderildi : 03/10/2018 12:16

Paylaş: