Changes between Version 15 and Version 16 of querries


Ignore:
Timestamp:
09/24/25 22:22:48 (13 days ago)
Author:
221046
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • querries

    v15 v16  
    3232||'''Фактури по корисник по датум'''||[[Image(invoice_per_customer_after_date2.png, width=700)]]|| Враќа сите фактури за избраниот корисник; ако е зададен датум, ги филтрира по тој датум и пресметува вкупната сума. ||
    3333
    34 = Релациона алгебра за прашалникот: Најпопуларен артист по жанр за корисник =
    35 
    36 
    37 == 1. !PlayCounts ==
    38 Се пресметува бројот на плеј-стани за секој жанр и уметник за одреден клиент (со ID 123). Операциите што се користат се:
    39 
    40 - **Join**: Поврзување на сите потребни табли (customer, invoice, invoice_line, track, genre, album, artist) со операцијата `⋈`.
    41 - **Selection (σ)**: Применуваме услов за селектирање само на податоци за клиент со ID 123.
    42 - **Grouping (γ)**: Групираме по жанр и уметник и пресметуваме бројот на плеј-стани за секој пар жанр-уметник со функцијата COUNT.
    43 
    44 Релационата алгебра за `PlayCounts`:
    45 
    46 !PlayCounts = γ_{g.genre_id, g.name → genre_name, ar.name → artist_name, COUNT(*) → play_count} (σ_{c.customer_id = 123}((customer ⋈ invoice) ⋈ (invoice_line ⋈ track) ⋈ (track ⋈ genre) ⋈ (track ⋈ album) ⋈ (album ⋈ artist)))
    47 
    48 
    49 == 2. !MaxPlayCounts ==
    50 Се пресметува максималниот број на плеј-стани за секој жанр. Операциите што се користат се:
    51 
    52 - **Grouping (γ)**: Групирање по `genre_id` и пресметување на максималниот број на плеј-стани за секој жанр користејќи ја функцијата `MAX`.
    53 
    54 Релационата алгебра за `MaxPlayCounts`:
    55 
    56 !MaxPlayCounts = γ_{genre_id, MAX(play_count) → max_count} (!PlayCounts)
    57 
    58 
    59 == 3. !FinalResult ==
    60 Се прави **Join** помеѓу `PlayCounts` и `MaxPlayCounts`, за да се изберат само оние редови каде што бројот на плеј-стани се совпаѓа со максималниот број за даден жанр. Се избираат само атрибутите `genre_name`, `artist_name`, и `play_count`.
    61 
    62 Релационата алгебра за финалниот резултат:
    63 
    64 !FinalResult = π_{pc.genre_name, pc.artist_name, pc.play_count}
    65 (!PlayCounts ⋈_{pc.genre_id = mpc.genre_id ∧ pc.play_count = mpc.max_count} !MaxPlayCounts)
    66 
    67 
    68 == Целосен израз на релационата алгебра ==
    69 Со комбинирање на сите чекори, добиваме целосен израз за релационата алгебра:
    70 
    71 π_{pc.genre_name, pc.artist_name, pc.play_count} ((γ_{g.genre_id, g.name → genre_name, ar.name → artist_name, COUNT(*) → play_count}(σ_{c.customer_id = 123} ((customer ⋈ invoice) ⋈ (invoice_line ⋈ track) ⋈ (track ⋈ genre) ⋈ (track ⋈ album) ⋈ (album ⋈ artist)))) ⋈{pc.genre_id = mpc.genre_id ∧ pc.play_count = mpc.max_count} (γ{genre_id, MAX(play_count) → max_count} (!PlayCounts)))
    7234
    7335** ← [wiki: Назад на почетна] **