Anonymní profil Ovrscout – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Ovrscout – Programujte.comAnonymní profil Ovrscout – Programujte.com

 

Příspěvky odeslané z IP adresy 92.62.237.–

Ovrscout
MS SQL › Prosba o kontrolu kodu z uče…
5. 4. 2017   #215489

#5 shockwave

V MGR_ID je uloženo zaměstnanecké ID šéfa, neboli když číslo ze sloupce MGR_ID vyhledáš ve sloupci ID, tak dostaneš řádku s údaji o šéfovy.

Důležité je pochopit ten podtržený text níže, zkus si zavolat ten dotaz bez té části s where a jukni na výsledek. Nebo kukni na obrázky http://www.w3resource.com/sql/joins/cross-join.php

Pro lepší srozumitelnost si pak tu podmínku můžeme obrátit na: E2.ID=E1.MGR_ID.
A potom, se ta podmínka dá číst nějak takto:
Ze všech kombinací záznamů(řádek) E1,E2 chci takové, kde v E2 bude záznam o šefovy který šéfuje zaměstnanci uvedenému v E1. Ostatní kombinace se zahodí.

P.S. Asi by mělo být tučně zvýrazněno že cross join jako takový, vytváří všechny možné kombinace ze kterých se pak filtruje. Což pro větší než malý počet řádek může být opravdu hoodně kombinací.
Nicméně v závislosti na podmínce si s tím optimalizátor někdy dokáže  pohrát a převést to na jiný typ joinu.
Např zde https://msdn.microsoft.com/en-us/library/ms190690.aspx .

Navíc mi přijde že ostatní typy joinů jsou tak nějak čitelnější a lépe vyjadřují co programátor vlastně chtěl a tím jsou i méně náchylné na chyby. No ale nejsem nějak velký "databázista", tak tohle poslední ber s rezervou.

Ovrscout
Java › Test preteceni Doublu
1. 4. 2017   #215416

#1 Janous

No, mně to přijde jako když si motáš běžné celočíselné výpočty a výpočty v IIE754, takhle to tam nefunguje.
Nějaký popis pro iee754 např zde: https://en.wikipedia.org/…oating_point a zde https://cs.wikipedia.org/wiki/IEEE_754 (doporučuji pročíst hlavně EN verzi)

Pro defaultní nastavení by měl být výsledek "přetečení" hodnota "infinity". Takaže v javě by mělo stačit zkontrolovat výsledek pomocí Double.isInfinity nebo tak nějak.

Jak ale psal Kit, tak ve většině běžných případů se k tomuto nedopočítáš.

Nicméně double (a další bninary decimal čísla iee754) trpí i jinými vlastnostmi, které mohou leckoho překvapit. Např:
- double má opravdu hooodně velký rozsah, ale jen omezenou "přesnost" - počet platných dec míst je jen kolem15. (což už se dá překročit, např při průběžném přičítání malých čísel k jednomu velkému)
- neschopnost opravdu přesně reprezentovat některá dekadická desetinná místa (např 1.1 je ve skutečnosti uloženo jako cca 1.10000000000000008881784197001 atp.)

Asi by bylo dobré popsat jak a co se snažíš počítat, kolik máš vstupních čísel, s jakou přesností, atp... .
A pak se dá poradit, jakým směrem se dát.

Kromně jiného ještě upozorním na hodnotu NaN která se také múže objevit jak třeba výsledek (0.0/0.0)
 

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý