Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.
#HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.
Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.
Společnost Boston Dynamics oznámila, že humanoidní hydraulický robot HD Atlas šel do důchodu (YouTube). Nastupuje nová vylepšená elektrická varianta (YouTube).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.0.0. Přehled novinek v poznámkách k vydání.
Nejvyšší soud podpořil novináře Českého rozhlasu. Nařídil otevřít spor o uchovávání údajů o komunikaci (data retention). Uvedl, že stát odpovídá za porušení práva EU, pokud neprovede řádnou transpozici příslušné směrnice do vnitrostátního práva.
Minulý týden proběhl u CZ.NIC veřejný test aukcí domén. Včera bylo publikováno vyhodnocení a hlavní výstupy tohoto testu.
Byla vydána nová verze 3.5.0 svobodné implementace protokolu RDP (Remote Desktop Protocol) a RDP klienta FreeRDP. Přehled novinek v ChangeLogu. Opraveno bylo 6 bezpečnostních chyb (CVE-2024-32039, CVE-2024-32040, CVE-2024-32041, CVE-2024-32458, CVE-2024-32459 a CVE-2024-32460).
Google Chrome 124 byl prohlášen za stabilní. Nejnovější stabilní verze 124.0.6367.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 22 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Byla vydána nová verze 9.3 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Novinkou je vlastní repozitář DietPi APT.
SELECT timediff(now(), a.close_time) AS estimate , p.nazov_t, a.start_price, a.start_price+sum(b.bid) AS actprice, a.* FROM app_aukcia a right join tovar p ON a.id_tovar=p.id JOIN app_aukcia_bids b ON b.id_aukcia=a.id WHERE a.closed='n' ORDER BY close_time DESC;ďakujem pekne
Řešení dotazu:
left OUTER join app_aukcia_bidsnebo mozna
right outer
, s timhle vzdycky trochu bojuju
SELECT SUM(b.bid) AS spolu,a.* FROM app_aukcia a LEFT OUTER JOIN app_aukcia_bids b on b.id_aukcia=a.id WHERE a.closed='n' ORDER BY close_time DESC;teraz sa to správa tak isto, teda zobrazuje iba riadky, pri ktorých je v druhej tabulke bid
OUTER
nemá na vykonávání joinů vliv; je prostě nepovinné.
Zadruhé: Rozdíl mezi LEFT [ OUTER ] JOIN
a RIGHT [ OUTER ] JOIN
:
LEFT JOIN
: to, pro co napravo od klauzule neexistuje odpovídající entita, je nahrazeno NULL
y.
RIGHT JOIN
: to, pro co nalevo od klauzule — tedy řídící množina je ta napravo — neexistuje odpovídající entita, je nahrazeno NULL
y.
FULL OUTER JOIN
, kde jsou řídícími množinami obě strany. Pak se lze v dokumentaci dočíst o CROSS JOIN
, což je kartézský součin.
INNER JOIN
, což znamená: dej mi to, co je vlevo a zároveň v pravo. Co na libovolné straně přebývá, zahoď.
GROUP BY
klauzule, byť MySQL (a potažmo i do určité míry i SyBase ASE) ji odpouští. To ale na věci nic nemění. Uvádět se má. Když ji vynecháš, databáze si groupuje jak chce — to znamená, že ztrácíš kontrolu.
OK, rozeberme si ten dotaz:a.start_price
versus a.*
. Hvězdička je jen pro ten nejtvrdší devel.TOVAR
, protože RIGHT JOIN
. K ní se dohledají aukce. Pak to celé omezíš (JOIN
znamená INNER JOIN
!) těmi přihozeními.
NULL
stejně jako operátory. To znamená, že 1 + NULL
je prostě NULL
. A i tak SUM()
NULL
ů je NULL
. Takže když k NULL
u vráceným agregační funkcí přičteš konstantu, výsledek je NULL
. NULL
ový výstup agrgační funkce se tedy musí převést na nějakou hodnotu.
Tím končím.
V příloze máš skript (ano, pro Oracle, protože tu nic jiného nemám), který by ti mohl být užitečný. Víc dát nemůžu, protože jsi neposkytnul testovací data.
P.S.: V diskuzi uvádíš, že ti nefunguje ani dotaz jen nad tabulkami aukcí a přihozeními. Zkontroluj si integritu dat. Tyhle primitivní spojení fungují i v Excelu a Accessu!
Tiskni Sdílej: