java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.sql.xml
author František Kučera <franta-hg@frantovo.cz>
Thu Apr 29 14:50:15 2010 +0200 (2010-04-29)
changeset 118 1c52b1a4a18a
parent 109 374ec52b5b69
child 119 d91f600c4645
permissions -rw-r--r--
Hlasování: hlasovat je možné z jedné IP adresy každý den jednou
(dříve bylo možné hlasovat jen jednou celkově).
Přidán index na date(datum) a upraven SQL dotaz.
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
     3 <properties>
     4     <entry key="HLASOVANI_INSERT">
     5 	INSERT INTO hlasovani
     6 	(podnik, hlas, ip_adresa)
     7 	VALUES (:podnik, :hlas, :ip_adresa);
     8     </entry>
     9     <entry key="HLASOVANI_SELECT">
    10 	<!--
    11 	    Osoby identifikujeme na základě IP adres.
    12 	    Každá osoba může hlasovat kolikrát chce.
    13 	    Ale do výsledků se počítá vždy jen její poslední hlas v daném dni
    14 	    (může efektivně hlasovat každý den jednou).
    15 	-->
    16 	SELECT	hlas,
    17 	    int4(count(*))
    18 	FROM (
    19 	    SELECT DISTINCT ON (ip_adresa, date(datum))
    20 		hlas
    21 	    FROM hlasovani
    22 	    WHERE podnik = :podnik
    23 	    ORDER BY ip_adresa, date(datum), id DESC
    24 	) AS hlasy
    25 	GROUP BY hlas;
    26 	<!--
    27 	    Poznámka k přetypování int4(count(*)):
    28 	    maximum je: 2 147 483 647 (tolik hlasů v součtu snad mít nikdy nebudeme :-)
    29 	-->
    30     </entry>
    31 </properties>