Changes between Version 5 and Version 6 of AdvancedReports


Ignore:
Timestamp:
02/06/25 03:40:33 (2 weeks ago)
Author:
223270
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReports

    v5 v6  
    44Идентификување на дестинации кои имаат најголем број на различни видови настани. Во долунаведениот код се пребаруваат сите дестинации и ги брои различните видови на настани (како концерти, фестивали, саеми и сл.) поврзани со секоја дестинација. Потоа, резултатите се сортираат по бројот на различни настани во опаѓачки редослед и се добива еден вид на рангирање. Од особено значење за корисници што сакаат да вклучат повеќе разновидни настани при нивното патување.
    55{{{
    6 SELECT d.imeLokacija, COUNT(DISTINCT n.kategorija) AS brojRaznovidniNastani
     6SELECT d.imeLokacija AS destinacija, COUNT(DISTINCT n.naziv) AS broj_nastani
    77FROM DESTINACII d
    88JOIN NASTANI n ON d.idDest = n.idDest
    99GROUP BY d.imeLokacija
    10 ORDER BY brojRaznovidniNastani DESC;
     10HAVING COUNT(DISTINCT n.naziv) = (
     11    SELECT MAX(broj_nastani)
     12    FROM (
     13        SELECT COUNT(DISTINCT n.naziv) AS broj_nastani
     14        FROM DESTINACII d
     15        JOIN NASTANI n ON d.idDest = n.idDest
     16        GROUP BY d.imeLokacija
     17    ) AS temp
     18);
    1119}}}
    1220
     
    1523Дополнително, за да се прикажат различни категории на настани за одредена дестинација. За пример, доколку сакате да ги видите сите видови настани што се одржуваат во Охрид:
    1624{{{
    17 SELECT DISTINCT n.kategorija
     25SELECT DISTINCT n.naziv
    1826FROM NASTANI n
    1927JOIN DESTINACII d ON n.idDest = d.idDest
     
    6371
    6472
    65 === Топ 10 корисници со најголем број напишани рецензии
    66 Најактивни 10 корисници т.е. оние кои имаат напишано најголем број на рецензии.
     73=== Топ корисници со најголем број напишани рецензии
     74Најактивни корисници т.е. оние кои имаат напишано најголем број на рецензии.
    6775{{{
    68 SELECT k.ime, k.prezime, COUNT(r.idRecenzija) AS brojRecenzii
    69 FROM KORISNICI k
    70 JOIN RECENZII r ON k.idKorisnik = r.idKorisnik
    71 GROUP BY k.idKorisnik, k.ime, k.prezime
    72 ORDER BY brojRecenzii DESC
    73 LIMIT 10;
     76SELECT idKorisnik, COUNT(*) AS broj_recenzii
     77FROM RECENZII
     78GROUP BY idKorisnik
     79HAVING COUNT(*) > (SELECT COUNT(*) * 0.9 FROM RECENZII);
    7480}}}
    7581
     
    7884Пресметување на цената по ден за пакети, што помага да се дознае кој пакет има најдобра вредност според сумата. Во случај да има пакет од 20 евра за 1 ден или пакет од 50 евра за 1 недела, би можело да се прикаже која опција е најисплатлива.
    7985{{{
    80 SELECT p.imePaket, p.cena, TIMESTAMPDIFF(DAY, p.pochetok, p.kraj) AS vremeTraenjeDena,
    81        p.cena / TIMESTAMPDIFF(DAY, p.pochetok, p.kraj) AS cenaPoDen
     86SELECT p.imePaket AS paket,
     87       p.cena / DATEDIFF(p.kraj, p.pochetok) AS cena_po_den
    8288FROM PAKETI p
    83 WHERE TIMESTAMPDIFF(DAY, p.pochetok, p.kraj) > 0
    84 ORDER BY cenaPoDen ASC
    85 LIMIT 10;
     89WHERE p.cena / DATEDIFF(p.kraj, p.pochetok) = (
     90    SELECT MIN(p.cena / DATEDIFF(p.kraj, p.pochetok))
     91    FROM PAKETI p
     92);
    8693}}}
    8794