Documente Academic
Documente Profesional
Documente Cultură
MongoDB:
Script:
db.clienti_leasing.find({ MONEDA: "EUR" }).projection({NUME_CLIENT:1,
MONEDA:1,PROFESIA:1,VARSTA:1, _id:0})
2) Să se afișeze numele, profesia, varsta și suma din depozit pentru clienții care au
în depozite mai mult de 10000 lei.
Script:
db.clienti_leasing.find({SUMA_DEPOZIT:{$gt:1000}}).projection({NUME_CLIENT:1,
PROFESIA:1, SUMA_DEPOZIT:1,_id:0}).sort({SUMA_DEPOZIT:1})
3) Afișați clienții (nume, varsta, suma credit, descriere) care au credite de tipul
“DIVERS”.
Script:
db.clienti_leasing.find({DESCRIERE:/DIVERS/}).projection({NUME_CLIENT:1, VARSTA:1,
VAL_CREDITE_RON:1, DESCRIERE:1,_id:0}).sort({NUME_CLIENT:1})
4) Afișați clienții cu vârsta cuprinsă între 25 si 35 de ani care au credite mai mari
decât 20.000 lei.
Script:
db.clienti_leasing.find({$and:[{VARSTA:{$gt: 25, $lt: 35}},{VAL_CREDITE_RON:{$gt:
-20000}}]}).projection({NUME_CLIENT:1, VARSTA:1, VAL_CREDITE_RON:1,
DESCRIERE:1,_id:0})
Script:
db.clienti_leasing.find({FIDELITATE:2}).projection({NUME_CLIENT:1,
PROFESIA:1,SUMA_SOLICITATA:1,FIDELITATE:1, _id:0}).sort({VARSTA:1})
Script:
db.clienti_leasing.aggregate( [
{$match: {VARSTA:{$gte:30,$lte:40}}},
{$group:{
_id:{stare_civila:"$STARE_CIVILA"},
valoare_medie:{$avg:"$VAL_CREDITE_RON"},
numar_clienti:{$sum: 1}
}}
])
Script:
db.clienti_leasing.aggregate( [
{
$bucketAuto: {
groupBy: "$SUMA_SOLICITATA",
buckets: 5
output: {
"Nr_total": { $sum: 1 }
}
}
}
])
9) Realizați 2 fluxuri de agregare (cu comanda $facet) prin care clienții să fie
grupați în funcție de starea civilă și separat în funcție de sex.
Script:
db.clienti_leasing.aggregate(
[{
$facet:{
"Stare civila":[{
$group: { _id: "$STARE_CIVILA",
numar_total:{$sum:1}
}
}],
"Sex":[{
$group: {_id: "$SEX",
numar_total: {$sum:1}
}
}]
}
}])
Python – Oracle:
Script:
import cx_Oracle
import pandas as pd
from pprint import pprint
connection = cx_Oracle.connect("student_ps", "oracle", "37.120.250.20/oracle")
query = """SELECT componenta, an_fabricatie, pret_manopera from t_clienti_daune where
marca in ('FORD', 'JEEP')"""
df = pd.read_sql(query, con=connection, params={})
pprint (df.loc[(df['AN_FABRICATIE'] < 2010) & (df['COMPONENTA'] =='BATTERY'),
'PRET_MANOPERA'])
df.loc[(df['AN_FABRICATIE'] < 2010) & (df['COMPONENTA'] =='BATTERY'),
'PRET_MANOPERA']=df.loc[(df['AN_FABRICATIE'] < 2010) & (df['COMPONENTA']
=='BATTERY'), 'PRET_MANOPERA']*1.10
pprint(df.loc[(df['AN_FABRICATIE'] < 2010) & (df['COMPONENTA'] =='BATTERY'),
'PRET_MANOPERA'])
df.to_csv('clienti_daune_mod.csv')
Script:
import matplotlib.pyplot as plt
query = """SELECT marca, model, avg(valoare_dauna) as valoare_medie, count(dauna) as
nr_dauna from t_clienti_daune group by marca, model"""
dfex2 = pd.read_sql(query, con=connection, params={})
print(dfex2)
print(dfex[dfex2["VALOARE_MEDIE"] > 400].count())
print(dfex2['VALOARE_MEDIE'][dfex2['VALOARE_MEDIE'] > 400].count())
df = dfex2.loc[:,["MODEL","NR_DAUNA"]][dfex2['NR_DAUNA'] > 200]
df.sort_values().plot(kind='bar', color = 'lightpink')
plt.show()
Script:
import cx_Oracle
import pandas as pd
from pprint import pprint
connection = cx_Oracle.connect("student_ps", "oracle", "37.120.250.20/oracle")
query = """SELECT nume_client, suma_solicitata, suma_depozit, fidelitate from
t_clienti_leasing where varsta>30 AND val_credite_ron>10.000"""
df = pd.read_sql(query, con=connection, params={})
pprint (df.loc[(df['suma_depozit'] > df['suma_solicitata']), 'fidelitate'])
df.loc[(df['suma_depozit'] > df['suma_solicitata']) ,'fidelitate']=df.loc[(df['suma_depozit'] >
df['suma_solicitata']), 5
pprint(df.loc[(df['suma_depozit'] > df['suma_solicitata', 'fidelitate'])
df.to_csv('clienti_leasing_mod.csv')
4) Încărcați într-un df profesia, venitul anual, suma din depozite și suma solicitată pe
fiecare profesie. În df adăugați o nouă coloană pentru a calcula gradul de îndatorare
pe fiecare profesie (suma_solicitata/(venit_anual+suma_depozit)*100).
Script:
import cx_Oracle
import pandas as pd
query = """SELECT profesia, avg(suma_solicitata) as avg_suma, avg(venit_anual) as
avg_venitAnual, avg(suma_depozit) as avg_sumaDepozit from t_clienti_leasing group by
profesia"""
df4 = pd.read_sql(query, con=connection, params={})
print(df4)
df['Grad_Indatorare]=df['avg_suma'] / (df['avg_venitAnual']+df['avg_sumaDepozit]*100
5) Încărcați într-un df starea civilă, profesia și suma totală solicitată grupată în
funcție de aceste atribute. Introduceți de la tastatură profesia și vizualizați
înregistrările returnate.
Script:
query = """SELECT stare_civila, profesia, sum(suma_solicitata) as total_suma from
t_clienti_leasing group by stare_civila, profesia"""
dfex3 = pd.read_sql(query, con=connection, params={})
print(dfex3)
print('Introduceti profesia: ')
string = input()
print(dfex3[dfex3['PROFESIA'] == string])