Zadatak 2
unknown
python
2 years ago
8.2 kB
10
Indexable
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()Editor is loading...