Zadatak 2
unknown
python
a year ago
8.2 kB
4
Indexable
Never
import psycopg2 from config import config class QueryData: def __init__(self): params = config() print('Connecting to the PostgreSQL database...') print() self.conn = psycopg2.connect(**params) # create a cursor self.cur = self.conn.cursor() def close(self): self.cur.close() self.conn.close() # Ukupan broj nekretnina koji se izdaje/prodaje def query_item_a(self, file): self.cur.execute(""" SELECT COUNT(*), tipPonude FROM public.realestate GROUP By tipPonude """) item = self.cur.fetchall() file.write("Ukupan broj nekretnina koji se iznajmljuje/prodaje: ") file.write('\n') for row in item: file.write("Tip ponude = " + str(row[1]) + ", " + "Num = " + str(row[0]) ) file.write('\n') file.write('\n \n') return item # Ukupan broj nekretnina koje se prodaju po gradovima def query_item_b(self, file): self.cur.execute(""" SELECT COUNT(*) as NumSell, grad FROM public.realestate WHERE tipPonude = 'prodaja' GROUP By grad """) item = self.cur.fetchall() file.write("Ukupan broj prodatih nekretnina po gradovima: ") file.write('\n') for row in item: file.write("Grad = " + row[1] + ", " + "Num = " + str(row[0]) ) file.write('\n') file.write('\n \n') return item # Ukupan broj uknjizenih nekretnina po tipu # Ukupan broj nekretnina koje nisu uknjizene po tipu def query_item_c(self, file): self.cur.execute(""" SELECT COUNT(*), tipNekretnine FROM public.realestate WHERE uknjizenost = 'uknjiženo ' GROUP By tipNekretnine """) item = self.cur.fetchall() file.write("Ukupan broj uknjizenih nekretnina po tipu: ") file.write('\n') for row in item: file.write("Tip nekretnine = " + row[1] + ", " + "Num = " + str(row[0])) file.write('\n') file.write('\n \n') self.cur.execute(""" SELECT COUNT(*), tipNekretnine FROM public.realestate WHERE uknjizenost != 'uknjiženo ' GROUP By tipNekretnine """) item = self.cur.fetchall() file.write("Ukupan broj nekretnina koje nisu uknjizene po tipu: ") file.write('\n') for row in item: file.write("Tip nekretnine = " + row[1] + ", " + "Num = " + str(row[0])) file.write('\n') file.write('\n \n') return item # 30 najskupljih kuca koje se prodaju # 30 najskupljih stanova koji se prodaju def query_item_d(self, file): self.cur.execute(""" SELECT cena, tipnekretnine, lokacija FROM public.realestate WHERE tipPonude = 'prodaja' AND tipNekretnine = 'kuca' ORDER BY cena DESC LIMIT 30 """) item = self.cur.fetchall() file.write("30 najskupljih kuca: ") file.write('\n') for row in item: file.write("Tip nekretnine = " + row[1] + ", " + "Cena = " + str(row[0]) + ", " + "Lokacija = " + row[2]) file.write('\n') file.write('\n \n') self.cur.execute(""" SELECT cena, tipnekretnine, lokacija FROM public.realestate WHERE tipPonude = 'prodaja' AND tipNekretnine = 'stan' ORDER BY cena DESC LIMIT 30 """) item = self.cur.fetchall() file.write("30 najskupljih stanova: ") file.write('\n') for row in item: file.write("Tip nekretnine = " + row[1] + ", " + "Cena = " + str(row[0])+ ", " + "Lokacija = " + row[2]) file.write('\n') file.write('\n \n') return item # 100 najvecih kuca po povrsini # 100 najvecih stanova po povrsini def query_item_e(self, file): self.cur.execute(""" SELECT kvadraturaNekretnine, tipNekretnine, lokacija FROM public.realestate WHERE tipNekretnine = 'kuca' ORDER BY kvadraturaNekretnine DESC NULLS LAST LIMIT 100 """) item = self.cur.fetchall() file.write("100 najvecih kuca: ") file.write('\n') for row in item: if row[0] != None: file.write("Tip nekretnine = " + row[1] + ", " + "Kvadratura = " + str(row[0]) + ", " + "Lokacija = " + row[2]) file.write('\n') file.write('\n \n') self.cur.execute(""" SELECT kvadraturaNekretnine, tipNekretnine, lokacija FROM public.realestate WHERE tipNekretnine = 'stan' ORDER BY kvadraturaNekretnine DESC NULLS LAST LIMIT 100 """) item = self.cur.fetchall() file.write("100 najvecih stanova: ") file.write('\n') for row in item: if row[0] != None: file.write("Tip nekretnine = " + row[1] + ", " + "Kvadratura = " + str(row[0]) + ", " + "Lokacija = " + row[2]) file.write('\n') file.write('\n \n') return item # Nekretninte izgradjene u 2022 i 2023 godini def query_item_f(self, file): self.cur.execute(""" SELECT cena, tipNekretnine, godinaIzgradnje, lokacija FROM public.realestate WHERE godinaIzgradnje = 2022 OR godinaIzgradnje = 2023 ORDER BY cena DESC NULLS LAST """) item = self.cur.fetchall() file.write("Nekretninte izgradjene u 2022 i 2023 godini: ") file.write('\n') for row in item: file.write("Tip nekretnine = " + row[1] + ", " + "Cena = " + str(row[0]) + ", " + "Godina = " + str(row[2]) + ", " + "Lokacija = " + row[3]) file.write('\n') file.write('\n \n') return item # TOP 30 nekretninta sa najvecim brojem soba # TOP 30 stanova sa najvecim kvadraturom # TOP 30 kuca sa najvecim povrsinom def query_item_g(self, file): self.cur.execute(""" SELECT brojsoba, tipNekretnine, lokacija FROM public.realestate ORDER BY brojsoba DESC NULLS LAST LIMIT 30 """) item = self.cur.fetchall() file.write("TOP 30 stanova sa najvecim brojem soba : ") file.write('\n') for row in item: if row[0] != None: file.write("Tip nekretnine = " + row[1] + ", " + "Broj soba = " + str(row[0]) + ", " + "Lokacija = " + row[2]) file.write('\n') file.write('\n \n') self.cur.execute(""" SELECT kvadraturaNekretnine, tipNekretnine, lokacija FROM public.realestate WHERE tipNekretnine = 'stan' ORDER BY kvadraturaNekretnine DESC NULLS LAST LIMIT 30 """) item = self.cur.fetchall() file.write("TOP 30 kuca sa najvecom kvadraturom : ") file.write('\n') for row in item: if row[0] != None: file.write("Tip nekretnine = " + row[1]+", " + "Kvadratura = " + str(row[0]) + "m2" + ", " + "Lokacija = " + row[2]) file.write('\n') file.write('\n \n') self.cur.execute(""" SELECT povrsinaZemljista, tipNekretnine, lokacija FROM public.realestate WHERE tipNekretnine = 'kuca' ORDER BY povrsinaZemljista DESC NULLS LAST LIMIT 30 """) item = self.cur.fetchall() file.write("TOP 30 sa najvecom povrsinom zemljista : ") file.write('\n') for row in item: if row[0] != None: file.write("Tip nekretnine = " + row[1]+", " + "Povrsina zemljista = " + str(row[0]) + " " + "ara" + ", " + "Lokacija = " + row[2]) file.write('\n') file.write('\n \n') return item file = open("statistika.txt", "w") query = QueryData() query.query_item_a(file) query.query_item_b(file) query.query_item_c(file) query.query_item_d(file) query.query_item_e(file) query.query_item_f(file) query.query_item_g(file) file.close()