wiki:querries

Version 5 (modified by 221046, 2 days ago) ( diff )

--

Основни SQL Queries

Име SQL Query Поголемо објаснување
Пребарување албумиAlbum.objects.filter(titleicontains=search_track).values_list('title', flat=True) Пребарува албуми кои содржат текст во насловот, враќајќи листа на наслови.
Сите албумиAlbum.objects.all().values_list('title', flat=True) Враќа листа на сите албуми со нивните наслови.
Пребарување траковиTrack.objects.filter(nameicontains=search_track).values_list('name', flat=True) Пребарува тракови кои содржат текст во името, враќајќи листа на имиња.
Сите траковиTrack.objects.all().values_list('name', flat=True) Враќа листа на сите тракови со нивните имиња.
Пребарување артистиArtist.objects.filter(nameicontains=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 Кратко објаснување
Број на тракови по жанр за корисник Пребарува за избран корисник колку тракови од секој жанр има купено или слушано.
Најпопуларен артист по жанр за корисник Наоѓа за избран корисник кој артист е најпопуларен во секој жанр, користејќи броење на преслушувања и максимален број по жанр.
Фактури по корисник по датум Враќа сите фактури за избраниот корисник; ако е зададен датум, ги филтрира по тој датум и пресметува вкупната сума.

Назад на почетна

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.