2016-02-03 1 views
0

J'ai la requête suivante:Roll Up avec plusieurs sélectionne et rejoindre

select b.giorno , b.totali, b.unici, a.duplicati, round((a.duplicati/b.totali)*100) as percentuale 
from 
(
    select 
     count(count) as duplicati, 
     c.day as day 
    from 
     (
     select 
      count(ip) as count, 
      date(date) as day, 
      ip 
     from 
      vas_updates 
     group by 
      ip 
     having 
      count > 1 
     ) as c 
    group by day 
) as a 
left join 
(
    select 
     count(id_update) as totali, 
     count(distinct ip) as unici, 
     date(date) as giorno 
    from 
     vas_updates 
    group by 
     date(date) 
) as b on 
    giorno = b.giorno AND 
    giorno = day group by giorno 

Comment puis-je obtenir une dernière ligne qui résume b.totali, b.unici, a.duplicati et individualité percentuale?

+0

qui utilisent RDMs. Certains rdms ont une syntaxe spéciale pour cela. Et ceux qui ne sont pas d'accord sur la syntaxe. Vous devriez spécifier le rdms pour cette raison –

+0

C'est MySQL :) Merci. –

Répondre

0

Essayez ceci,

SELECT b.giorno , 
    SUM(b.totali) AS totali, 
    SUM(b.unici) AS unici , 
    SUM(a.duplicati) AS duplicati , 
    ROUND(SUM((a.duplicati/b.totali) * 100)) AS percentuale 
FROM (SELECT COUNT(count) AS duplicati , 
       c.day AS day 
     FROM  (SELECT COUNT(ip) AS count , 
          date(date) AS day , 
          ip 
        FROM  vas_updates 
        GROUP BY ip 
        HAVING count > 1 
       ) AS c 
     GROUP BY day 
    ) AS a 
    LEFT JOIN (SELECT COUNT(id_update) AS totali , 
         COUNT(DISTINCT ip) AS unici , 
         date(date) AS giorno 
       FROM vas_updates 
       GROUP BY date(date) 
      ) AS b ON giorno = b.giorno 
         AND giorno = day 
GROUP BY giorno 
+0

HI, il ne sort rien de différent que le mien. –