-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGROUP BY.sql
More file actions
122 lines (101 loc) · 5.26 KB
/
GROUP BY.sql
File metadata and controls
122 lines (101 loc) · 5.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
--GROUP BY--
/*
group by cumlecegi select ifadesinde satirlari, sutunlari degerlerine gore
ozet olarak gruplamak icin kullanilir.
group by cumlecigi her grup basina satir dondurur
group by genelde avg(), count(), max(), min(), sum() gibi aggregate fonksiyonlari
ile birlikte kullanilir
*/
CREATE TABLE manav
(
isim varchar(50),
urun_adi varchar(50),
urun_miktari int
);
INSERT INTO manav VALUES( 'Ali', 'Elma', 5);
INSERT INTO manav VALUES( 'Ayse', 'Armut', 3);
INSERT INTO manav VALUES( 'Veli', 'Elma', 2);
INSERT INTO manav VALUES( 'Hasan', 'Uzum', 4);
INSERT INTO manav VALUES( 'Ali', 'Armut', 2);
INSERT INTO manav VALUES( 'Ayse', 'Elma', 3);
INSERT INTO manav VALUES( 'Veli', 'Uzum', 4);
INSERT INTO manav VALUES( 'Ali', 'Armut', 2);
INSERT INTO manav VALUES( 'Veli', 'Elma', 3);
INSERT INTO manav VALUES( 'Ayse', 'Uzum', 4);
INSERT INTO manav VALUES( 'Ali', null, 2);
create table personel
(id int primary key,
ad varchar(20),
soyad varchar(20),
yas int,
cinsiyet char,
sehir varchar(20),
ulke varchar(20),
maas int
);
insert into personel values(100, 'Eymen', 'Bal', '25', 'E', 'Istanbul', 'Turkiye', '20000');
insert into personel values(101, 'Derya', 'Soylu', '35', 'K', 'Istanbul', 'Turkiye', '25000');
insert into personel values(102, 'Enes', 'Boz', '55', 'E', 'Istanbul', 'Turkiye', '22000');
insert into personel values(103, 'Nil', 'Naz', '45', 'K', 'Trabzon', 'Turkiye', '20000');
insert into personel values(104, 'Ali', 'Can', '28', 'E', 'Ankara', 'Turkiye', '15000');
insert into personel values(105, 'Yusuf', 'Cengiz', '46', 'E', 'Bolu', 'Turkiye', '30000');
insert into personel values(106, 'Ahmet', 'Aslan', '38', 'E', 'Adana', 'Turkiye', '28000');
insert into personel values(107, 'Mehmet', 'Aslan', '29', 'E', 'Gaziantep', 'Turkiye', '21000');
insert into personel values(108, 'Sena', 'Yavuz', '49', 'K', 'New York', 'USA', '40000');
insert into personel values(109, 'Zehra', 'Amber', '52', 'K', 'New York', 'USA', '45000');
insert into personel values(110, 'Fatma', 'Nur', '33', 'K', 'Berlin', 'Almanya', '35000');
insert into personel values(111, 'Mustafa', 'Bay', '44', 'E', 'Paris', 'Fransa', '34000');
insert into personel values(112, 'Murat', 'Kerem', '28', 'E', 'Istanbul', 'Turkiye', '29000');
insert into personel values(113, 'Sinan', 'Ay', '45', 'E', 'Izmir', 'Turkiye', '19000');
insert into personel values(114, 'Figen', 'Bal', '55', 'K', 'Istanbul', 'Turkiye', '25000');
insert into personel values(115, 'Serkan', 'Bayram', '36', 'E', 'Londra', 'Ingiltere', '50000');
insert into personel values(116, 'Hakan', 'Bacak', '29', 'E', 'Londra', 'Ingiltere', '55000');
insert into personel values(117, 'Zafer', 'Yanak', '47', 'E', 'Berlin', 'Almanya', '42000');
insert into personel values(118, 'Birol', 'Kara', '37', 'E', 'Paris', 'Fransa', '41000');
insert into personel values(119, 'Ayten', 'Tan', '32', 'K', 'Roma', 'Italya', '39000');
-- kisi ismine göre satılan toplam meyve miktarlarını gösteren sorguyu yazınız.
select isim, sum(urun_miktari) from manav
group by isim
-- satılan meyve türüne (urun_adi) göre urun alan kişi sayısını gösteren-- sorguyu yazınız. NULL olarak girilen meyveyi listelemesin.
select urun_adi, count(isim) from manav
where urun_adi is not null
group by urun_adi
-- satılan meyve türüne (urun_adi) göre satılan (urun_miktari )MIN ve -- MAX urun miktarlarini, MAX urun miktarina göre sıralayarak listeyen sorguyu yazınız.
select urun_adi, min(urun_miktari) as minimum_urun_miktari, max(urun_miktari) as maksimum_urun_miktari from manav
where urun_adi is not null
group by urun_adi
order by maksimum_urun_miktari desc
-- kisi ismine ve urun adına göre satılan ürünlerin toplamını gruplandıran
-- ve isime göre ters sırasıda listeyen sorguyu yazınız.
select isim,urun_adi, sum(urun_miktari) as toplam_urun from manav
group by isim, urun_adi
order by isim desc
-- personelin calıştığı ülkeleri listeleyiniz
select * from personel
select ulke from personel
group by ulke
select ulke, count(*) from personel group by ulke
-- Ülkelere göre ortalama maaşları listeleyiniz
select ulke, round(avg(maas),2) as ortalama_maas from personel
group by ulke
-- Maas ortalamasını bayanlar ve baylar olarak sorgulayınız
select cinsiyet, round(avg(maas)) as avg_maas from personel
group by cinsiyet
-- Personelin, ulkelere göre ve şehirlere göre gruplayarak sorgulayın
select ulke,sehir from personel
group by ulke, sehir
-- Personelin, ulkelere göre ve şehirler göre calışan sayısını sorgulayın.
select ulke, sehir, count(sehir) as calisan_sayisi from personel
group by ulke, sehir
-- Her ulke için bay ve bayan çalışan sayısı ve yaş ortalamasını sorgulayınız.
select ulke,cinsiyet,count(*) as calisan_sayisi, avg(yas) from personel
group by ulke, cinsiyet
-- Her ulke için bay ve bayan çalışan sayısı ve yaş ortalamasını ve maası 30000 den büyük olanları sorgulayınız.
select ulke, cinsiyet, round(avg(yas)) as ortalama_yas, count(*) from personel
where maas>30000
group by ulke, cinsiyet
-- Her ulke için; bay ve bayan çalışan sayısı, yaş ortalamasını, maaşı 30000 den büyük olanları-- ve ortalama yaşı büyükten küçüğe doğru sıralayınız.
select ulke,cinsiyet,round(avg(yas)) as ortalama_yas,count(*) from personel
where maas > 30000
group by ulke, cinsiyet
order by ortalama_yas desc