<span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "><div style="color: rgb(51, 51, 51); font-family: arial, sans-serif; font-size: 13px; "><span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); ">Eden, primeiramente, peço desculpas pela acidez excessiva. Quero ficar no lado básico do pH :)</span></div>

<div style="color: rgb(51, 51, 51); font-family: arial, sans-serif; font-size: 13px; ">Eu não sei o que você entendeu como "pivot table", vamos dar um sync:</div><div style="color: rgb(51, 51, 51); font-family: arial, sans-serif; font-size: 13px; ">

<br></div><div><div><font class="Apple-style-span" color="#333333" face="'courier new', monospace">tipo<span class="Apple-tab-span" style="white-space: pre; ">   </span>dia<span class="Apple-tab-span" style="white-space: pre; ">      </span>quantidade</font></div>

<div><font class="Apple-style-span" color="#333333" face="'courier new', monospace">onibus<span class="Apple-tab-span" style="white-space:pre">     </span>1<span class="Apple-tab-span" style="white-space:pre">   </span>5</font></div>

<div><font class="Apple-style-span" color="#333333" face="'courier new', monospace">bike<span class="Apple-tab-span" style="white-space:pre">       </span>1<span class="Apple-tab-span" style="white-space:pre">   </span>3</font></div>

<div><font class="Apple-style-span" color="#333333" face="'courier new', monospace">onibus<span class="Apple-tab-span" style="white-space:pre">     </span>1<span class="Apple-tab-span" style="white-space:pre">   </span>2</font></div>

<div><font class="Apple-style-span" color="#333333" face="'courier new', monospace">carro<span class="Apple-tab-span" style="white-space:pre">      </span>2<span class="Apple-tab-span" style="white-space:pre">   </span>7</font></div>

<div><font class="Apple-style-span" color="#333333" face="'courier new', monospace">onibus<span class="Apple-tab-span" style="white-space:pre">     </span>2<span class="Apple-tab-span" style="white-space:pre">   </span>4</font></div>

<div><font class="Apple-style-span" color="#333333" face="'courier new', monospace">moto<span class="Apple-tab-span" style="white-space:pre">       </span>2<span class="Apple-tab-span" style="white-space:pre">   </span>3</font></div>

<div><font class="Apple-style-span" color="#333333" face="'courier new', monospace">bike<span class="Apple-tab-span" style="white-space: pre; ">    </span>2<span class="Apple-tab-span" style="white-space: pre; ">        </span>9</font></div>

</div><div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><br></font></div><div><font class="Apple-style-span" color="#333333" face="arial, sans-serif">Esse é o meu input.</font></div><div><font class="Apple-style-span" color="#333333" face="arial, sans-serif"><br>

</font></div><div><div><font class="Apple-style-span" color="#333333" face="'courier new', monospace"><span class="Apple-tab-span" style="white-space: pre; ">    </span>dia1<span class="Apple-tab-span" style="white-space: pre; ">     </span>dia2<span class="Apple-tab-span" style="white-space: pre; ">     </span>total</font></div>

</div></span><font class="Apple-style-span" face="'courier new', monospace"><span class="Apple-style-span" style="color: rgb(51, 51, 51); background-color: rgb(255, 255, 255); ">bike<span class="Apple-tab-span" style="white-space:pre">   </span>3<span class="Apple-tab-span" style="white-space:pre">   </span>9<span class="Apple-tab-span" style="white-space:pre">   </span>12</span><span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "><div>

<div><font class="Apple-style-span" color="#333333">carro<span class="Apple-tab-span" style="white-space:pre">        </span>0<span class="Apple-tab-span" style="white-space:pre">   </span>7<span class="Apple-tab-span" style="white-space:pre">   </span>7</font></div>

<div><font class="Apple-style-span" color="#333333">moto<span class="Apple-tab-span" style="white-space:pre"> </span>0<span class="Apple-tab-span" style="white-space:pre">   </span>3<span class="Apple-tab-span" style="white-space:pre">   </span>3</font></div>

<div><font class="Apple-style-span" color="#333333">onibus<span class="Apple-tab-span" style="white-space:pre">       </span>7<span class="Apple-tab-span" style="white-space:pre">   </span>4<span class="Apple-tab-span" style="white-space:pre">   </span>11</font></div>

<div><font class="Apple-style-span" color="#333333"><br></font></div></div></span></font><div>Esse seria o output, agregado por soma.</div><div>Como você imagina a query para fazer isso, em SQL puro?</div><div><br>ABS()<br>

<br>
<br><br><div class="gmail_quote">2011/8/14 Eden Cardim <span dir="ltr"><<a href="mailto:edencardim@gmail.com">edencardim@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">>>>>> "Stanislaw" == Stanislaw Pusep <<a href="mailto:creaktive@gmail.com">creaktive@gmail.com</a>> writes:<br>
<br>
</div>    Stanislaw> Mas é claro.  Hipótese: Camada de abstração por cima do<br>
    Stanislaw> SQL é tão pífia quanto um debugger via breakpoints:<br>
    Stanislaw> somente ajudam nas coisas triviais que sabemos muito bem<br>
    Stanislaw> resolver sem eles.<br>
<br>
Ah, excelente, não estou de ressaca, é você que está desinformado. O<br>
DBIx::Class é um framework mais amplo do que uma mera "abstração por<br>
cima do SQL". Quem abstrai o SQL não é o DBIx::Class, é o SQL::Abstract,<br>
que é só uma das implementações de storage pra DBIx::Class.<br>
<br>
    Stanislaw> Caso particular: Quero implementar algo tão trivial<br>
    Stanislaw> quanto uma pivot table, que existe em qualquer solução de<br>
    Stanislaw> planilha, até mesmo Google Docs<br>
    Stanislaw> (<a href="http://www.youtube.com/watch?v=giuD7KSmock" target="_blank">http://www.youtube.com/watch?v=giuD7KSmock</a>).  Em SQL<br>
    Stanislaw> "puro", resolvo satisfatoriamente numa única query,<br>
    Stanislaw> através de uma "delta function".<br>
<br>
É isso que dá beber metanol, não precisa de uma delta function pra<br>
implementar pivots, isso é uma agregação simples implementável com uma<br>
linha de SQL::Abstract:<br>
<br>
{ select => [{ sum => 'column1' }, { avg => 'column2' }], group_by => [qw(column1 column2)] }<br>
<br>
    Stanislaw> Já usando DBIx::Class... Bem, ele não<br>
    Stanislaw> conseguiu: <a href="http://www.grokbase.com/t/lists.scsys.co.uk/dbix-class/2011/03/" target="_blank">http://www.grokbase.com/t/lists.scsys.co.uk/dbix-class/2011/03/</a><br>
    Stanislaw> dbix-class-a-strategy-for-pivots/227sxfbdyp3i72mesybf4cyvgk6u<br>
<br>
Fail, ele estava fazendo um RFC sobre uma idéia que ele teve, não tem<br>
nada falando que ele não conseguiu. A propósito, isso é trivialíssimo,<br>
tanto que implementamos um OLAP em 5 meses com uma equipe de 4 pessoas<br>
(da entrevista inicial com o cliente a um sistema 100% funcional e<br>
testado, gerando relatórios em PDF, etc. etc.), que pivoteia a<br>
informação de desempenho de alunos do ensino primário de toda a região<br>
noroeste dos EUA gerando estatísticas bastante complexas como cálculo de<br>
Stanine, Desvio Padrão e Regressão Linear sobre mais de 20 dimensões<br>
diferentes. Estamos fazendo agora o motor de análise pro <a href="http://socialflow.com" target="_blank">socialflow.com</a>,<br>
que gerencia o workflow de publicação de canais de mídia social e atende<br>
a empresas como o The Economist e Al Jazeera. Essa solução lida com<br>
throughputs de análise da ordem de 35 GB/dia, cujo core é um pivoteador<br>
baseado em DBIx::Class.<br>
<br>
    Stanislaw> <mimimi> Claro que é possível rodar queries arbitrárias<br>
    Stanislaw> em DBIx::Class, mas aí todo o framework não cheira e nem<br>
    Stanislaw> fede.  </mimimi><br>
<br>
mimimi mesmo, ser uma query arbitrária ou uma tabela não faz a mínima<br>
diferença pro framework e essa afirmação só transparece o fato de que<br>
você não dedicou nem 1 hora pra ler a documentação e não tem nenhum<br>
argumento objetivo pra respaldar a tua trollada gratuita. Nesse caso, só<br>
tenho uma coisa a falar: RTFM<br>
<font color="#888888"><br>
--<br>
  Eden Cardim<br>
  Code Monkey                    <a href="http://www.shadowcat.co.uk/catalyst/" target="_blank">http://www.shadowcat.co.uk/catalyst/</a><br>
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?<br>
<a href="http://blog.edencardim.com/" target="_blank">http://blog.edencardim.com/</a>            <a href="http://www.shadowcat.co.uk/servers/" target="_blank">http://www.shadowcat.co.uk/servers/</a><br>
</font><div><div></div><div class="h5"><a href="http://twitter.com/#!/edenc" target="_blank">http://twitter.com/#!/edenc</a><br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</div></div></blockquote></div><br></div>