= Основни SQL Queries = ||= Име =||= SQL Query =||= Поголемо објаснување =|| ||'''Пребарување албуми'''||Album.objects.filter(title__icontains=search_track).values_list('title', flat=True)|| Пребарува албуми кои содржат текст во насловот, враќајќи листа на наслови. || ||'''Сите албуми'''||Album.objects.all().values_list('title', flat=True)|| Враќа листа на сите албуми со нивните наслови. || ||'''Пребарување тракови'''||Track.objects.filter(name__icontains=search_track).values_list('name', flat=True)|| Пребарува тракови кои содржат текст во името, враќајќи листа на имиња. || ||'''Сите тракови'''||Track.objects.all().values_list('name', flat=True)|| Враќа листа на сите тракови со нивните имиња. || ||'''Пребарување артисти'''||Artist.objects.filter(name__icontains=search_track).values_list('name', flat=True)|| Пребарува артисти кои содржат текст во името, враќајќи листа на имиња. || ||'''Сите артисти'''||Artist.objects.all().values_list('name', flat=True)|| Враќа листа на сите артисти со нивните имиња. || = SQL Queries кои користат Views = ||'''Број тракови по жанр'''||cursor.execute("SELECT * FROM track_count_per_genre;")|| Земa број на тракови по жанр од претходно дефинирана view. || ||'''Просечно времетраење по артист'''||cursor.execute("SELECT * FROM avg_track_duration_per_artist;")|| Земa просечно времетраење на тракови по артист од view. || ||'''Најактивни корисници'''||cursor.execute("SELECT * FROM rank_list_most_active_customers_view;")|| Враќа рангирана листа на најактивни корисници од view. || ||'''Просечна цена по артист'''||cursor.execute("SELECT * FROM avg_price_per_artist;")|| Земa просечна цена по трак за секој артист од view. || ||'''Рангирана листа на артисти'''||cursor.execute("SELECT * FROM rank_list_artists;")|| Враќа рангирана листа на артисти според број на фактури и заработка од view. || ||'''Процент медиумски тип'''||cursor.execute("SELECT * FROM media_type_percentage;")|| Земa процентуална застапеност на секој медиумски тип од view. || ||'''Омилен жанр по корисник'''||cursor.execute("SELECT * FROM most_listened_genre_per_customer;")|| Враќа омилен жанр за секој корисник од view. || ||'''Број на тракови по жанр за корисник'''||cursor.execute(query, [selected_customer_id]) (genres_per_customer)|| Пребарува и брои колку тракови од секој жанр купил/слушал избран корисник, користејќи JOIN меѓу customer, invoice, invoice_line, track и genre. || ||'''Најпопуларен артист по жанр за корисник'''||cursor.execute(query, [selected_customer_id]) (most_popular_artist_per_customer_per_genre)|| Наоѓа кој артист е најпопуларен во секој жанр за избраниот корисник. Се користи CTE (PlayCounts и MaxPlayCounts) за броење на секој жанр и идентификување на највисок број на преслушувања. || ||'''Фактури по корисник по датум'''||cursor.execute(query, [selected_customer_id, selected_date]) (invoice_per_customer_after_date)|| Земa фактури за даден корисник, можност за филтрирање по датум, и пресметува вкупна сума. Ако не е зададен датум, враќа сите фактури на корисникот. || ||'''Масовно ажурирање на надредени'''||cursor.execute("SELECT batch_update_reports_to(%s::json);", [json_data])|| Ажурира поле reports_to за повеќе вработени одеднаш, користејќи JSON список со employee_id и reports_to_id. || ||'''Додавање тракови во плеилиста'''||cursor.execute("SELECT add_tracks_to_playlist(%s, %s::json);", [selected_playlist_id, json_data])|| Додава повеќе тракови во избрана плейлиста со JSON список на track_id преку PL/pgSQL функција. || ||'''Додавање линии на фактура'''||cursor.execute("SELECT add_invoice_lines_to_existing_invoice(%s, %s::json);", [selected_invoice_id, json_data])|| Додава линии на постоечка фактура со JSON список на track_id и quantity преку PL/pgSQL функција. || = Посложени SQL Queries = ||= Опис =||= Query =||= Кратко објаснување =|| ||'''Број на тракови по жанр за корисник'''||[[Image(genres_per_customer.png, width=700)]]|| Пребарува за избран корисник колку тракови од секој жанр има купено или слушано. || ||'''Најпопуларен артист по жанр за корисник'''||[[Image(most_popular_artist_per_customer_per_genre.png, width=700)]]|| Наоѓа за избран корисник кој артист е најпопуларен во секој жанр, користејќи броење на преслушувања и максимален број по жанр. || ||'''Фактури по корисник по датум'''||[[Image(invoice_per_customer_after_date.png, width=700)]]|| Враќа сите фактури за избраниот корисник; ако е зададен датум, ги филтрира по тој датум и пресметува вкупната сума. || ** ← [wiki: Назад на почетна] **