import%20marimo%0A%0A__generated_with%20%3D%20%220.23.15%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20altair%20as%20alt%0A%0A%20%20%20%20return%20(alt%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20os%0A%20%20%20%20import%20sqlalchemy%0A%0A%20%20%20%20_password%20%3D%20os.environ.get(%22password_daniel%22)%0A%20%20%20%20_username%20%3D%20os.environ.get(%22user_daniel%22)%0A%20%20%20%20_host%20%3D%20os.environ.get(%22host_daniel%22)%0A%20%20%20%20_database%20%3D%20os.environ.get(%22database_daniel%22)%0A%20%20%20%20DATABASE_URL%20%3D%20f%22postgresql%3A%2F%2F%7B_username%7D%3A%7B_password%7D%40%7B_host%7D%3A5432%2F%7B_database%7D%22%0A%20%20%20%20engine%20%3D%20sqlalchemy.create_engine(DATABASE_URL)%0A%20%20%20%20return%20(engine%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20SQL%20%2B%20Python%0A%20%20%20%20%23%20An%C3%A1lise%20Completa%20-%20Rede%20de%20Varejo%20DATA%20DT%0A%20%20%20%20An%C3%A1lise%20de%20Dados%20de%20Banco%20Relacional%20Corporativo%20-%20por%20**Levi%20S.%20Porto**%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%201.%20Tabelas%20das%20notas%20fiscais%20com%20data%20da%20venda%2C%20n%C3%BAmero%20da%20NF%2C%20valor%20total%2C%20forma%20de%20pagamento%2C%20cliente%20e%20vendedor%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20%0A%20%20%20%20%20%20%20%20n.data_venda%20as%20%22Data%20da%20Venda%22%2C%20%0A%20%20%20%20%20%20%20%20n.numero_nf%20as%20%22N%C3%BAmero%20da%20NF%22%2C%20%0A%20%20%20%20%20%20%20%20n.valor%20as%20%22Valor%22%2C%0A%20%20%20%20%20%20%20%20p.descricao%20as%20%22Forma%20de%20Pagamento%22%2C%0A%20%20%20%20%20%20%20%20f.nome%20as%20%22Nome%20do%20Vendedor%22%2C%20%0A%20%20%20%20%20%20%20%20coalesce(cf.nome%2C%20cj.razao_social)%20as%20%22Nome%20do%20Cliente%22%0A%20%20%20%20%20%20%20%20from%20vendas.nota_fiscal%20as%20n%0A%20%20%20%20%20%20%20%20join%20vendas.forma_pagamento%20as%20p%20on%20p.id%20%3D%20n.id_forma_pagto%0A%20%20%20%20%20%20%20%20join%20geral.pessoa%20as%20pv%20on%20pv.id%20%3D%20n.id_vendedor%0A%20%20%20%20%20%20%20%20join%20geral.pessoa_fisica%20as%20f%20on%20f.id%20%3D%20pv.id%0A%20%20%20%20%20%20%20%20left%20join%20geral.pessoa_fisica%20as%20cf%20on%20cf.id%20%3D%20n.id_cliente%0A%20%20%20%20%20%20%20%20left%20join%20geral.pessoa_juridica%20as%20cj%20on%20cj.id%20%3D%20n.id_cliente%0A%20%20%20%20%20%20%20%20order%20by%20n.data_venda%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_Possu%C3%ADmos%20**113.745%20Notas%20Fiscais**%20emitidas%20por%20Pessoas%20F%C3%ADsicas%20e%20**16.635%20Notas%20Fiscais**%20emitidas%20por%20Pessoas%20Jur%C3%ADdicas%2C%20totalizando%20**130.380%20Notas%20Fiscais**%20registradas%20entre%20o%20dia%20**1%20Jan%20de%202015%20at%C3%A9%2024%20Jul%20de%202026**_.%0A%20%20%20%20%23%23%23_A%20nota%20fiscal%20emitida%20com%20o%20valor%20mais%20baixo%20foi%20de%20**R%24%2020%2C55**%20e%20a%20mais%20alto%20foi%20de%20**R%24%2053.004%2C75**._%0A%0A%20%20%20%20%23%23%23_Possu%C3%ADmos%20**9%20formas%20diferentes%20de%20pagamento**%20e%20**23%20vendedores**%2C%20que%20emitiram%20nota%20para%20**14111%20clientes%20pessoa%20F%C3%ADsica**%20e%20**1780%20clientes%20pessoa%20F%C3%ADsica**%2C%20totalizando%20**15891%20clientes%20%C3%BAnicos**._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%202.%20C%C3%A1lculo%20do%20faturamento%20total%2C%20quantidade%20vendida%20e%20ticket%20m%C3%A9dio%20por%20categoria%20de%20produto%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(alt%2C%20engine%2C%20mo)%3A%0A%20%20%20%20_chart%20%3D%20(%0A%20%20%20%20%20%20%20%20alt.Chart(mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20c.descricao%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20cast(sum(valor_venda_real)%20as%20int)%20as%20%22Faturamento%20Total%22%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20cast(round(sum(((valor_venda_real%20-%20valor_custo)*quantidade))%2C2)%20as%20int)%20as%20%22Lucro%22%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20cast(round(sum(nf.valor_venda_real)%20%2F%20count(distinct%20nf.id_nota_fiscal)%2C2)%20as%20int)%20as%20%22Ticket%20M%C3%A9dio%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20cast(sum(quantidade)%20as%20int)%20as%20%22Quantidade%20Total%20Vendida%22%2C%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20cast(round(sum(((valor_venda%20-%20valor_custo)*quantidade))%2Fsum(quantidade)%2C2)%20as%20int)%20as%20%22M%C3%A9dia%20de%20Lucro%20por%20Unidade%20Vendida%22%0A%20%20%20%20from%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20join%20vendas.produto%20as%20p%20on%20p.id%20%3D%20nf.id_produto%0A%20%20%20%20join%20vendas.categoria%20as%20c%20on%20c.id%20%3D%20p.id_categoria%0A%20%20%20%20group%20by%20c.descricao%20%0A%20%20%20%20order%20by%20sum(((valor_venda%20-%20valor_custo)*quantidade))%20desc%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20))%0A%20%20%20%20%20%20%20%20.mark_bar()%0A%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(field%3D'Lucro'%2C%20type%3D'quantitative')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(field%3D'descricao'%2C%20type%3D'nominal'%2C%20title%3D'Categorias'%2C%20stack%3DFalse%2C%20sort%3DNone)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.Color(field%3D'Lucro'%2C%20type%3D'quantitative')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20.properties(%0A%20%20%20%20%20%20%20%20%20%20%20%20height%3D290%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3D810%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20config%3D%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'axis'%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'grid'%3A%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20_chart%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20c.descricao%2C%20sum(valor_venda_real)%20as%20%22Faturamento%20Total%22%2C%20%0A%20%20%20%20%20%20%20%20round(sum(((valor_venda_real%20-%20valor_custo)*quantidade))%2C2)%20as%20%22Lucro%22%2C%20%0A%20%20%20%20%20%20%20%20round(sum(nf.valor_venda_real)%20%2F%20count(distinct%20nf.id_nota_fiscal)%2C2)%20as%20%22Ticket%20M%C3%A9dio%22%2C%0A%20%20%20%20%20%20%20%20sum(quantidade)%20as%20%22Quantidade%20Total%20Vendida%22%2C%20%20%0A%20%20%20%20%20%20%20%20round(sum(((valor_venda_real%20-%20valor_custo)*quantidade))%2Fsum(quantidade)%2C2)%20as%20%22M%C3%A9dia%20de%20Lucro%20por%20Unidade%20Vendida%22%20%0A%20%20%20%20%20%20%20%20from%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.produto%20as%20p%20on%20p.id%20%3D%20nf.id_produto%0A%20%20%20%20%20%20%20%20join%20vendas.categoria%20as%20c%20on%20c.id%20%3D%20p.id_categoria%0A%20%20%20%20%20%20%20%20group%20by%20c.descricao%20%0A%20%20%20%20%20%20%20%20order%20by%20sum(((valor_venda%20-%20valor_custo)*quantidade))%20desc%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_**Inform%C3%A1tica**%20%C3%A9%20a%20categoria%20que%20lidera%20o%20faturamento%2C%20lucro%20e%20quantidades%20totais%20vendidas%2C%20mas%20o%20maior%20t%C3%ADcket%20m%C3%A9dio%20%C3%A9%20o%20da%20categoria%20**TV%20e%20%C3%81udio**%2C%20seguido%20por%20**eletrodom%C3%A9sticos**.%20Portanto%20recomenda-se%20aumentar%20a%20venda%20de%20itens%20de%20TV%20e%20%C3%81udio%2C%20mas%20lembrando%20que%20o%20core%20business%20est%C3%A1%20na%20Inform%C3%A1tica._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%203.%20Top%2010%20produtos%20com%20maior%20faturamento%2C%20incluindo%20quantidade%20vendida%2C%20valor%20m%C3%A9dio%20unit%C3%A1rio%20e%20ranking.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(alt%2C%20engine%2C%20mo)%3A%0A%20%20%20%20_chart%20%3D%20(%0A%20%20%20%20%20%20%20%20alt.Chart(mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20%20%0A%20%20%20%20%20%20%20%20p.nome%20as%20%22Produto%22%2C%20%0A%20%20%20%20%20%20%20%20cast(sum(valor_venda_real)%20as%20int)%20as%20%22Faturamento%22%2C%20%0A%20%20%20%20%20%20%20%20cast(sum(quantidade)%20as%20int)%20as%20%22Quantidade%20Vendida%22%2C%20%0A%20%20%20%20%20%20%20%20cast(round(sum(valor_venda_real)%20%2F%20sum(quantidade)%2C%202)%20as%20int)%20as%20%22Valor%20M%C3%A9dio%20Unit%C3%A1rio%22%2C%20%0A%20%20%20%20%20%20%20%20RANK()%20OVER%20(ORDER%20BY%20sum(valor_venda_real)%20DESC)%20AS%20ranking%20%20%0A%20%20%20%20%20%20%20%20from%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.produto%20as%20p%20on%20p.id%20%3D%20nf.id_produto%0A%20%20%20%20%20%20%20%20group%20by%20p.nome%0A%20%20%20%20%20%20%20%20order%20by%20sum(valor_venda_real)%20desc%0A%20%20%20%20%20%20%20%20limit%2010%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20%20%20%20%20))%0A%20%20%20%20%20%20%20%20.mark_bar()%0A%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(field%3D'Faturamento'%2C%20type%3D'quantitative')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(field%3D'Produto'%2C%20type%3D'nominal'%2C%20stack%3DTrue%2C%20sort%3D'-x')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.Color(field%3D'Faturamento'%2C%20type%3D'quantitative')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Produto')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Faturamento'%2C%20format%3D'%2C.2f')%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20.properties(%0A%20%20%20%20%20%20%20%20%20%20%20%20height%3D290%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3D'container'%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20.configure_axis(%0A%20%20%20%20%20%20%20%20%20%20%20%20grid%3DFalse%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20_chart%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20%20%0A%20%20%20%20%20%20%20%20p.nome%20as%20%22Produto%22%2C%20%0A%20%20%20%20%20%20%20%20(sum(valor_venda_real))%20as%20%22Faturamento%22%2C%20%0A%20%20%20%20%20%20%20%20sum(quantidade)%20as%20%22Quantidade%20Vendida%22%2C%20%0A%20%20%20%20%20%20%20%20round(((sum(valor_venda_real))%2F%20sum(quantidade))%2C2)%20as%20%22Valor%20M%C3%A9dio%20Unit%C3%A1rio%22%2C%20%0A%20%20%20%20%20%20%20%20RANK()%20OVER%20(ORDER%20BY%20(sum(valor_venda_real))%20DESC)%20AS%20ranking%20%20%0A%20%20%20%20%20%20%20%20from%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.produto%20as%20p%20on%20p.id%20%3D%20nf.id_produto%0A%20%20%20%20%20%20%20%20group%20by%20p.nome%0A%20%20%20%20%20%20%20%20order%20by%20sum(valor_venda_real)%20desc%0A%20%20%20%20%20%20%20%20limit%2010%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_A%20**Lavadora%20Ganca%2010L**%20%C3%A9%20o%20item%20que%20traz%20mais%20faturamento%20(e%20tamb%C3%A9m%20com%20o%20maior%20Valor%20M%C3%A9dio%20Unit%C3%A1rio)%2C%20por%C3%A9m%20o%20produto%20com%20mais%20sa%C3%ADda%20%C3%A9%20o%20**Lava%20Lou%C3%A7as%20BRASTEMP**.%20Alguns%20itens%20chegam%20perto%20de%20atingir%20o%20mesmo%20faturamento%2C%20como%20o%20**Notebook%20MSFT%20HIBR%2C%20a%20Smart%20TV%20Samsung%2052%20e%20a%20Smart%20TV%20Panasonic%2052**.%20Recomenda-se%20fazer%20campanhas%20de%20venda%20para%20as%20Televis%C3%B5es%2C%20que%20lideram%20o%20ranking%20com%206%20itens%20entre%20os%20com%20maior%20faturamento._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%204.%20C%C3%A1lculo%20da%20margem%20bruta%20por%20produto%20usando%20valor%20de%20venda%20e%20valor%20de%20custo%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20p.nome%20as%20%22Produto%22%2C%20%0A%20%20%20%20%20%20%20%20sum(valor_venda_real)%20as%20%22Faturamento%22%2C%20%0A%20%20%20%20%20%20%20%20sum(((nf.valor_unitario%20-%20valor_custo)*quantidade))%20as%20%22Lucro%22%2C%20%0A%20%20%20%20%20%20%20%20round((sum(((nf.valor_unitario%20-%20valor_custo)*quantidade))%2F(sum(((nf.valor_unitario)*quantidade))))*100%2C2)%20as%20%22Margem%20Bruta%22%20%0A%20%20%20%20%20%20%20%20from%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.produto%20as%20p%20on%20p.id%20%3D%20nf.id_produto%0A%20%20%20%20%20%20%20%20group%20by%20p.nome%0A%20%20%20%20%20%20%20%20order%20by%20%22Margem%20Bruta%22%20desc%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_Produtos%20com%20maior%20margem%20bruta%20s%C3%A3o%20**Star%20Tack**%20(79%25)%2C%20%20**Leitor%20de%20Cart%C3%B5es**%20(70%25)%20e%20**Cr%C3%B4nicas%20Antigas**%20(67%25).%20A%20maioria%20dos%20produtos%20possui%20entre%2045.3%25%20e%2053.9%25%20de%20margem%20bruta%20(40%20produtos)%20e%20existem%2056%20produtos%20com%20margem%20bruta%20abaixo%20de%2019.5%25.%20A%20recomenda%C3%A7%C3%A3o%20%C3%A9%20eliminar%20esses%20produtos%2C%20caso%20n%C3%A3o%20atraiam%20clientes._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%205.%20An%C3%A1lise%20do%20faturamento%20por%20Estado%20e%20Cidade%20do%20cliente%2C%20ordenando%20do%20maior%20para%20o%20menor.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(alt%2C%20engine)%3A%0A%20%20%20%20def%20_()%3A%0A%20%20%20%20%20%20%20%20import%20pandas%20as%20pd%0A%0A%20%20%20%20%20%20%20%20_chart%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20alt.Chart(pd.read_sql(%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20select%20sum(valor_venda_real)%20as%20%22Faturamento%22%20%2Cci.descricao%20as%20%22Cidade%22%2Ces.descricao%20as%20%22Estado%22%20%20from%20vendas.nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.item_nota_fiscal%20inf%20on%20inf.id%20%3D%20nf.id%0A%20%20%20%20%20%20%20%20join%20geral.pessoa%20pe%20on%20pe.id%20%3D%20nf.id_cliente%0A%20%20%20%20%20%20%20%20join%20geral.endereco%20en%20on%20en.id_pessoa%20%3D%20pe.id%0A%20%20%20%20%20%20%20%20join%20geral.bairro%20ba%20on%20ba.id%20%3D%20en.id_bairro%20%0A%20%20%20%20%20%20%20%20join%20geral.cidade%20ci%20on%20ci.id%20%3D%20ba.id_cidade%0A%20%20%20%20%20%20%20%20join%20geral.estado%20es%20on%20es.id%20%3D%20ci.id_estado%0A%20%20%20%20%20%20%20%20group%20by%20%22Cidade%22%2C%20%22Estado%22%0A%20%20%20%20%20%20%20%20order%20by%20sum(valor_venda_real)%20desc%0A%20%20%20%20%20%20%20%20limit%2010%0A%20%20%20%20%20%20%20%20%22%22%22%2C%20engine))%0A%20%20%20%20%20%20%20%20%20%20%20%20.mark_bar()%0A%20%20%20%20%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(field%3D'Faturamento'%2C%20type%3D'quantitative'%2C%20aggregate%3D'mean'%2C%20sort%3D'-y')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(field%3D'Cidade'%2C%20type%3D'nominal'%2C%20sort%3D'-x')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.Color(field%3D'Cidade'%2C%20type%3D'nominal')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Cidade')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Faturamento'%2C%20aggregate%3D'mean'%2C%20format%3D'%2C.2f')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Cidade')%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.properties(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20height%3D290%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20width%3D'container'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20config%3D%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'axis'%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'grid'%3A%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20return%20_chart%0A%0A%0A%20%20%20%20_()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20sum(valor_venda_real)%20as%20%22Faturamento%22%20%2Cci.descricao%20as%20%22Cidade%22%2Ces.descricao%20as%20%22Estado%22%20%20from%20vendas.nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.item_nota_fiscal%20inf%20on%20inf.id%20%3D%20nf.id%0A%20%20%20%20%20%20%20%20join%20geral.pessoa%20pe%20on%20pe.id%20%3D%20nf.id_cliente%0A%20%20%20%20%20%20%20%20join%20geral.endereco%20en%20on%20en.id_pessoa%20%3D%20pe.id%0A%20%20%20%20%20%20%20%20join%20geral.bairro%20ba%20on%20ba.id%20%3D%20en.id_bairro%20%0A%20%20%20%20%20%20%20%20join%20geral.cidade%20ci%20on%20ci.id%20%3D%20ba.id_cidade%0A%20%20%20%20%20%20%20%20join%20geral.estado%20es%20on%20es.id%20%3D%20ci.id_estado%0A%20%20%20%20%20%20%20%20group%20by%20%22Cidade%22%2C%20%22Estado%22%0A%20%20%20%20%20%20%20%20order%20by%20sum(valor_venda_real)%20desc%0A%20%20%20%20%20%20%20%20limit%2010%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_A%20esmagadora%20maioria%20do%20faturamento%20vem%20de%20clientes%20(Pessoas%20F%C3%ADsicas%20e%20Jur%C3%ADdicas)%20que%20residem%20em%20**Fortaleza**%20(66%2C35%25).%20Vendemos%20para%2026%20Estados%20diferentes%2C%20atendendo%20419%20Cidades%20-%20embora%20o%20Estado%20do%20Cear%C3%A1%20sozinho%20corresponda%20a%2096%2C20%25%20do%20faturamento._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%236.%20Categoriza%C3%A7%C3%A3o%20de%20clientes%20em%20Alto%20Valor%2C%20M%C3%A9dio%20Valor%20e%20Baixo%20Valor%20com%20base%20no%20total%20comprado.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(alt%2C%20engine%2C%20mo)%3A%0A%20%20%20%20_chart%20%3D%20(%0A%20%20%20%20%20%20%20%20alt.Chart(mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20%0A%20%20%20%20%20%20%20%20%20%20%20%20cast(sum(valor_venda_real)%20as%20float)%20as%20%22Faturamento%22%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20nf.id_cliente%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20CASE%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20WHEN%20NTILE(3)%20OVER%20(ORDER%20BY%20sum(valor_venda_real)%20DESC%2C%20nf.id_cliente)%20%3D%201%20THEN%20'Alto%20Valor'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20WHEN%20NTILE(3)%20OVER%20(ORDER%20BY%20sum(valor_venda_real)%20DESC%2C%20nf.id_cliente)%20%3D%202%20THEN%20'M%C3%A9dio%20Valor'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20WHEN%20NTILE(3)%20OVER%20(ORDER%20BY%20sum(valor_venda_real)%20DESC%2C%20nf.id_cliente)%20%3D%203%20THEN%20'Baixo%20Valor'%0A%20%20%20%20%20%20%20%20%20%20%20%20END%20AS%20%22Categoriza%C3%A7%C3%A3o%22%20%0A%20%20%20%20%20%20%20%20from%20vendas.nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.item_nota_fiscal%20inf%20on%20inf.id_nota_fiscal%20%3D%20nf.id%0A%20%20%20%20%20%20%20%20group%20by%20nf.id_cliente%0A%20%20%20%20%20%20%20%20order%20by%20sum(valor_venda_real)%20desc%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20%20%20%20%20))%0A%20%20%20%20%20%20%20%20.mark_point()%0A%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(field%3D'id_cliente'%2C%20type%3D'quantitative'%2C%20title%3D'Cliente')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(field%3D'Faturamento'%2C%20type%3D'quantitative'%2C%20title%3D'Faturamento')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.Color(field%3D'Categoriza%C3%A7%C3%A3o'%2C%20type%3D'nominal')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'id_cliente'%2C%20format%3D'%2C.0f'%2C%20title%3D'Cliente')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Faturamento'%2C%20format%3D'%2C.2f'%2C%20title%3D'Faturamento')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Categoriza%C3%A7%C3%A3o')%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20.properties(%0A%20%20%20%20%20%20%20%20%20%20%20%20height%3D290%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3D'container'%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20.configure_axis(%0A%20%20%20%20%20%20%20%20%20%20%20%20grid%3DTrue%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20_chart%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20sum(valor_venda_real)%20as%20%22Faturamento%22%20%2C%20nf.id_cliente%2C%20%0A%20%20%20%20%20%20%20%20CASE%0A%20%20%20%20%20%20%20%20%20%20WHEN%20NTILE(3)%20OVER%20(ORDER%20BY%20%20sum(valor_venda_real)%20DESC%2C%20nf.id_cliente)%20%3D%201%20THEN%20'Alto%20Valor'%0A%20%20%20%20%20%20%20%20%20%20WHEN%20NTILE(3)%20OVER%20(ORDER%20BY%20%20sum(valor_venda_real)%20DESC%2C%20nf.id_cliente)%20%3D%202%20THEN%20'M%C3%A9dio%20Valor'%0A%20%20%20%20%20%20%20%20%20%20WHEN%20NTILE(3)%20OVER%20(ORDER%20BY%20%20sum(valor_venda_real)%20DESC%2C%20nf.id_cliente)%20%3D%203%20THEN%20'Baixo%20Valor'%0A%20%20%20%20%20%20%20%20END%20AS%20%22Categoriza%C3%A7%C3%A3o%22%20from%20vendas.nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.item_nota_fiscal%20inf%20on%20inf.id_nota_fiscal%20%3D%20nf.id%0A%20%20%20%20%20%20%20%20group%20by%20id_cliente%0A%20%20%20%20%20%20%20%20order%20by%20sum(valor_venda_real)%20desc%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_Os%20clientes%20est%C3%A3o%20bem%20distribu%C3%ADdos%20e%20existem%20poucos%20outliers.%20Um%20s%C3%B3%20cliente%20desembolsou%20o%20total%20de%20**R%24%20307745.45**%20e%20a%20recomenda%C3%A7%C3%A3o%20%C3%A9%20categoriz%C3%A1-lo%20a%20parte%2C%20como%20**Cliente%20de%20Alt%C3%ADssimo%20Valor**%2C%20juntamente%20com%20um%20conjunto%20seleto%20de%2070%20clientes%20entre%20os%2015939%20que%20desembolsaram%20acima%20de%20R%24%20200.000%20no%20per%C3%ADodo._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%207.%20C%C3%A1lculo%20da%20participa%C3%A7%C3%A3o%20percentual%20de%20cada%20categoria%20no%20faturamento%20total.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(alt%2C%20engine)%3A%0A%20%20%20%20def%20_()%3A%0A%20%20%20%20%20%20%20%20import%20pandas%20as%20pd%0A%20%20%20%20%20%20%20%20_chart%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20alt.Chart(pd.read_sql(%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20with%20categorias%20as%20%0A%20%20%20%20%20%20%20%20(select%20c.descricao%2C%20sum(valor_venda_real)%20as%20faturamento%20%0A%20%20%20%20%20%20%20%20from%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.produto%20as%20p%20on%20p.id%20%3D%20nf.id_produto%0A%20%20%20%20%20%20%20%20join%20vendas.categoria%20as%20c%20on%20c.id%20%3D%20p.id_categoria%0A%20%20%20%20%20%20%20%20group%20by%20c.descricao%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20select%20descricao%2Cfaturamento%2C%0A%20%20%20%20%20%20%20%20ROUND(100.0%20*%20faturamento%20%2F%20SUM(faturamento)%20OVER%20()%2C%202)%20AS%20porcentagem%0A%20%20%20%20%20%20%20%20from%20categorias%0A%20%20%20%20%20%20%20%20order%20by%20porcentagem%20desc%0A%20%20%20%20%20%20%20%20%22%22%22%2C%20engine))%0A%20%20%20%20%20%20%20%20%20%20%20%20.mark_bar()%0A%20%20%20%20%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(field%3D'porcentagem'%2C%20type%3D'quantitative')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(field%3D'descricao'%2C%20type%3D'nominal'%2C%20stack%3DTrue%2Csort%3D'-x')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.Color(field%3D'descricao'%2C%20type%3D'nominal')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'porcentagem'%2C%20format%3D'%2C.2f')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'descricao')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'descricao')%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20.properties(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20height%3D290%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20width%3D'container'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20config%3D%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'axis'%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'grid'%3A%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20return%20_chart%0A%0A%0A%20%20%20%20_()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20with%20categorias%20as%20%0A%20%20%20%20%20%20%20%20(select%20c.descricao%2C%20sum(valor_venda_real)%20as%20faturamento%20%0A%20%20%20%20%20%20%20%20from%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.produto%20as%20p%20on%20p.id%20%3D%20nf.id_produto%0A%20%20%20%20%20%20%20%20join%20vendas.categoria%20as%20c%20on%20c.id%20%3D%20p.id_categoria%0A%20%20%20%20%20%20%20%20group%20by%20c.descricao%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20select%20descricao%2Cfaturamento%2C%0A%20%20%20%20%20%20%20%20ROUND(100.0%20*%20faturamento%20%2F%20SUM(faturamento)%20OVER%20()%2C%202)%20AS%20porcentagem%0A%20%20%20%20%20%20%20%20from%20categorias%0A%20%20%20%20%20%20%20%20order%20by%20porcentagem%20desc%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_A%20categoria%20de%20**Inform%C3%A1tica**%20%C3%A9%20o%20l%C3%ADder%20de%20faturamento%2C%20com%2032.%25%20no%20per%C3%ADodo.%20**TV%20e%20%C3%81udio**%20%C3%A9%20bastante%20representativo%2C%20com%20**25.4%25.**%20Categorias%20com%20pouco%20faturamento%20s%C3%A3o%20DVDs%20e%20Livros%2C%20que%20somados%20n%C3%A3o%20chegam%20a%202%25%20do%20faturamento%20total._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%208.%20S%C3%A9rie%20temporal%20de%20vendas%20por%20m%C3%AAs%20com%20faturamento%20mensal%2C%20soma%20acumulada%20e%20varia%C3%A7%C3%A3o%20em%20rela%C3%A7%C3%A3o%20ao%20m%C3%AAs%20anterior.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(alt%2C%20engine%2C%20mo)%3A%0A%20%20%20%20_chart%20%3D%20(%0A%20%20%20%20%20%20%20%20alt.Chart(mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20WITH%20agregacao_mensal%20AS%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20SELECT%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20extract(year%20from%20nf2.data_venda)%20as%20ano%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20extract(month%20from%20nf2.data_venda)%20as%20mes%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sum(nf.valor_venda_real)%20as%20faturamento_mensal%0A%20%20%20%20%20%20%20%20%20%20%20%20FROM%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20%20%20%20%20JOIN%20vendas.nota_fiscal%20nf2%20on%20nf.id_nota_fiscal%20%3D%20nf2.id%0A%20%20%20%20%20%20%20%20%20%20%20%20JOIN%20geral.pessoa%20pe%20on%20pe.id%20%3D%20nf2.id_vendedor%0A%20%20%20%20%20%20%20%20%20%20%20%20JOIN%20geral.pessoa_fisica%20pf%20on%20pf.id%20%3D%20pe.id%0A%20%20%20%20%20%20%20%20%20%20%20%20GROUP%20BY%20extract(year%20from%20nf2.data_venda)%2C%20extract(month%20from%20nf2.data_venda)%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20SELECT%20%0A%20%20%20%20%20%20%20%20%20%20%20%20cast(ano%20as%20integer)%20as%20ano%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20cast(mes%20as%20integer)%20as%20mes%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20cast(sum(faturamento_mensal)%20over%20(order%20by%20ano%2C%20mes)%20as%20double%20precision)%20as%20%22soma%20acumulada%22%0A%20%20%20%20%20%20%20%20FROM%20agregacao_mensal%0A%20%20%20%20%20%20%20%20WHERE%20ano%20%3C%202026%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20%20%20%20%20))%0A%20%20%20%20%20%20%20%20.transform_calculate(%0A%20%20%20%20%20%20%20%20%20%20%20%20data_completa%3D%22toString(datum.ano)%20%2B%20'-'%20%2B%20toString(datum.mes)%20%2B%20'-01'%22%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20.mark_area()%0A%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(field%3D'ano'%2C%20type%3D'quantitative'%2C%20title%3D'Ano')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(field%3D'soma%20acumulada'%2C%20type%3D'quantitative'%2C%20title%3D'Faturamento%20(acumlado)'%2C%20aggregate%3D'sum')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.Color(field%3D'soma%20acumulada'%2C%20type%3D'quantitative')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'ano'%2C%20format%3D'%2C.2f'%2C%20title%3D'Ano')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'soma%20acumulada'%2C%20aggregate%3D'sum'%2C%20format%3D'%2C.2f'%2C%20title%3D'Faturamento%20(acumlado)')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'soma%20acumulada'%2C%20format%3D'%2C.2f')%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20.properties(%0A%20%20%20%20%20%20%20%20%20%20%20%20height%3D290%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3D'container'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20config%3D%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'axis'%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'grid'%3A%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20_chart%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20datas.mes%2C%20datas.ano%2C%20datas.faturamento%2C%0A%20%20%20%20%20%20%20%20sum(datas.faturamento)%20over%20(order%20by%20datas.sequencia)%20as%20%22soma%20acumulada%22%2C%0A%20%20%20%20%20%20%20%20coalesce(datas.faturamento%20-%20lag(datas.faturamento)%20over%20(order%20by%20datas.sequencia)%2C0)%20as%20%22varia%C3%A7%C3%A3o%20em%20rela%C3%A7%C3%A3o%20ao%20m%C3%AAs%20anterior%22%0A%20%20%20%20%20%20%20%20from%20(select%20extract%20(month%20from%20data_venda)%20as%20mes%2C%20extract%20(year%20from%20data_venda)%20as%20ano%2C%20%20sum(valor_venda_real)%20as%20%22faturamento%22%2C%0A%20%20%20%20%20%20%20%20row_number()%20over%20()%20as%20sequencia%0A%20%20%20%20%20%20%20%20from%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.nota_fiscal%20nf2%20%20on%20nf.id_nota_fiscal%20%3D%20nf2.id%0A%20%20%20%20%20%20%20%20join%20geral.pessoa%20pe%20%20on%20pe.id%20%3D%20nf2.id_vendedor%0A%20%20%20%20%20%20%20%20join%20geral.pessoa_fisica%20pf%20%20on%20pf.id%20%3D%20pe.id%0A%20%20%20%20%20%20%20%20group%20by%20mes%2C%20ano%0A%20%20%20%20%20%20%20%20order%20by%20ano%2C%20mes%0A%20%20%20%20%20%20%20%20)%20as%20datas%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_O%20m%C3%AAs%20e%20ano%20que%20acumulou%20o%20menor%20faturamento%20foi%20**Julho%20de%202015**%20(R%24%202.178.851.00)%2C%20enquanto%20o%20maior%20foi%20**Abril%20de%202026**%20(R%24%2010.725.990.77).%20O%20faturamento%20est%C3%A1%20crescendo%20de%20forma%20bastante%20uniforme%20com%20o%20passar%20dos%20anos._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%209.%20Produtos%20com%20faturamento%20acima%20da%20m%C3%A9dia%20da%20propria%20categoria.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20with%20produto_faturamento%20as%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20select%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p.id%20as%20id_produto%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p.nome%20as%20%22Produto%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20c.descricao%20as%20%22Categoria%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sum(nf.valor_venda_real)%20as%20%22Faturamento%22%0A%20%20%20%20%20%20%20%20%20%20%20%20from%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20%20%20%20%20join%20vendas.produto%20as%20p%20on%20p.id%20%3D%20nf.id_produto%0A%20%20%20%20%20%20%20%20%20%20%20%20join%20vendas.categoria%20as%20c%20on%20c.id%20%3D%20p.id_categoria%0A%20%20%20%20%20%20%20%20%20%20%20%20group%20by%20p.id%2C%20p.nome%2C%20c.descricao%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20com_media%20as%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20select%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Produto%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Categoria%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Faturamento%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20round(avg(%22Faturamento%22)%20over%20(partition%20by%20%22Categoria%22)%2C%202)%20as%20%22Faturamento_Medio_Categoria%22%0A%20%20%20%20%20%20%20%20%20%20%20%20from%20produto_faturamento%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20select%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Produto%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Categoria%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Faturamento%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Faturamento_Medio_Categoria%22%0A%20%20%20%20%20%20%20%20from%20com_media%0A%20%20%20%20%20%20%20%20where%20%22Faturamento%22%20%3E%20%22Faturamento_Medio_Categoria%22%0A%20%20%20%20%20%20%20%20order%20by%20%22Categoria%22%2C%20%22Faturamento%22%20desc%3B%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_**31%20Produtos**%20na%20categoria%20Inform%C3%A1tica%20faturam%20acima%20da%20m%C3%A9dia%20da%20categoria%2C%20**14%20Produtos**%20na%20categoria%20Celulares%20faturam%20acima%20da%20m%C3%A9dia%2C%20**12%20Produtos**%20em%20TV%20e%20%C3%81udio%2C%20**9%20Produtos**%20em%20Passagens%2C%20**8%20Produtos**%20na%20categoria%20Eletrodom%C3%A9sticos%2C%20**7%20Produtos**%20na%20categoria%20DVDs%2C%20**5%20Produtos**%20em%20Livros%2C%20**3%20Produtos**%20em%20M%C3%B3veis%20e%20%20**2%20Produtos**%20em%20Games_.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%2010.%20Rank%20de%20vendedores%20por%20faturamento%20total%20e%20por%20quantidade%20de%20notas%20fiscais%20emitidas%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(alt%2C%20engine%2C%20mo)%3A%0A%20%20%20%20%23%20replace%20_df%20with%20your%20data%20source%0A%20%20%20%20_chart%20%3D%20(%0A%20%20%20%20%20%20%20%20alt.Chart(mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20SELECT%0A%20%20%20%20%20%20%20%20%20%20%20%20nome%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20cast(sum(valor_venda_real)%20as%20double%20precision)%20as%20%22Faturamento%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20RANK()%20OVER%20(ORDER%20BY%20sum(valor_venda_real)%20DESC)%20AS%20%22Rank%20Faturamento%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20count(distinct%20nf2.id)%20as%20%22NF%20Emitidas%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20RANK()%20OVER%20(ORDER%20BY%20count(distinct%20nf2.id)%20DESC)%20AS%20%22Rank%20NF%20Emitidas%22%0A%20%20%20%20%20%20%20%20FROM%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20JOIN%20vendas.nota_fiscal%20nf2%20on%20nf.id_nota_fiscal%20%3D%20nf2.id%0A%20%20%20%20%20%20%20%20JOIN%20geral.pessoa%20pe%20on%20pe.id%20%3D%20nf2.id_vendedor%0A%20%20%20%20%20%20%20%20JOIN%20geral.pessoa_fisica%20pf%20on%20pf.id%20%3D%20pe.id%0A%20%20%20%20%20%20%20%20GROUP%20BY%20pe.id%2C%20nome%0A%20%20%20%20%20%20%20%20ORDER%20BY%20%22Faturamento%22%20DESC%0A%20%20%20%20%20%20%20%20LIMIT%205%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20%20%20%20%20))%0A%20%20%20%20%20%20%20%20.mark_arc()%0A%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.Color(field%3D'nome'%2C%20type%3D'nominal')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20theta%3Dalt.Theta(field%3D'Faturamento'%2C%20type%3D'quantitative')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'nome')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Faturamento'%2C%20format%3D'%2C.2f')%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20.properties(%0A%20%20%20%20%20%20%20%20%20%20%20%20height%3D290%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3D'container'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20config%3D%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'axis'%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'grid'%3A%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20_chart%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20%20%20nome%2C%20sum(valor_venda_real)%20as%20%22Faturamento%22%2C%20RANK()%20OVER%20(ORDER%20BY%20sum(valor_venda_real)%20DESC)%20AS%20%22Rank%20Faturamento%22%2C%0A%20%20%20%20%20%20%20%20count(distinct%20nf2.id)%20as%20%22NF%20Emitidas%22%2C%20RANK()%20OVER%20(ORDER%20BY%20count(id_nota_fiscal)%20DESC)%0A%20%20%20%20%20%20%20%20from%20vendas.item_nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.nota_fiscal%20nf2%20%20on%20nf.id_nota_fiscal%20%3D%20nf2.id%0A%20%20%20%20%20%20%20%20join%20geral.pessoa%20pe%20%20on%20pe.id%20%3D%20nf2.id_vendedor%0A%20%20%20%20%20%20%20%20join%20geral.pessoa_fisica%20pf%20%20on%20pf.id%20%3D%20pe.id%0A%20%20%20%20%20%20%20%20group%20by%20pe.id%2C%20nome%0A%20%20%20%20%20%20%20%20order%20by%20%22Faturamento%22%20%20desc%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_Os%2024%20vendedores%20que%20possuimos%20vendem%20muito%20uniformemente%2C%20como%20%C3%A9%20poss%C3%ADvel%20verificar%20pelo%20gr%C3%A1fico%20de%20pizza.%20A%20melhor%20vendedora%20s%C3%B3%20trouxe%20R%24%202270455.76%20a%20mais%20de%20faturamento%20do%20que%20a%20pior%20vendedora.%20A%20recomenda%C3%A7%C3%A3o%20%C3%A9%20investir%20em%20campanhas%20com%20os%20vendedores%2C%20trazendo%20bonifica%C3%A7%C3%B5es%20por%20venda%20e%20destacando%20os%20melhores%20do%20m%C3%AAs._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%2011.%20Compara%C3%A7%C3%A3o%20de%20vendas%20por%20forma%20de%20pagamento%2C%20indicando%20qual%20meio%20concentra%20maior%20receita%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(alt%2C%20engine)%3A%0A%20%20%20%20import%20pandas%20as%20pd%0A%20%20%20%20_chart%20%3D%20(%0A%20%20%20%20%20%20%20%20alt.Chart(pd.read_sql(%22%22%22%0A%20%20%20%20%20%20%20%20select%20cast(sum(valor)%20as%20int)%20as%20%22Faturamento%22%2C%20fp.descricao%20as%20%22Forma%20de%20Pagamento%22%0A%20%20%20%20%20%20%20%20from%20vendas.nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20vendas.forma_pagamento%20fp%20on%20fp.id%20%3D%20nf.id_forma_pagto%0A%20%20%20%20%20%20%20%20group%20by%20fp.descricao%0A%20%20%20%20%20%20%20%20order%20by%20sum(valor)%20desc%0A%20%20%20%20%22%22%22%2C%20engine))%0A%20%20%20%20%20%20%20%20.mark_bar()%0A%20%20%20%20%20%20%20%20.encode(%0A%20%20%20%20%20%20%20%20%20%20%20%20x%3Dalt.X(field%3D'Faturamento'%2C%20type%3D'quantitative'%2C%20sort%3D'ascending')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20y%3Dalt.Y(field%3D'Forma%20de%20Pagamento'%2C%20type%3D'nominal'%2C%20sort%3D'-x')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20color%3Dalt.Color(field%3D'Forma%20de%20Pagamento'%2C%20type%3D'nominal')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20tooltip%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Faturamento'%2C%20format%3D'%2C.2f')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Forma%20de%20Pagamento')%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alt.Tooltip(field%3D'Forma%20de%20Pagamento')%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20.properties(%0A%20%20%20%20%20%20%20%20%20%20%20%20height%3D290%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20width%3D'container'%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20config%3D%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'axis'%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'grid'%3A%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20%20_chart%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20sum(valor)%20as%20%22Faturamento%22%20%2C%20fp.descricao%20as%20%22Forma%20de%20Pagamento%22%20from%20vendas.nota_fiscal%20nf%20%0A%20%20%20%20%20%20%20%20join%20vendas.forma_pagamento%20fp%20on%20fp.id%20%3D%20nf.id_forma_pagto%20%0A%20%20%20%20%20%20%20%20group%20by%20fp.descricao%20%0A%20%20%20%20%20%20%20%20order%20by%20sum(valor)%20desc%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_A%20forma%20mais%20utilizada%20de%20pagamento%20%C3%A9%20pelo%20**Cart%C3%A3o%20de%20Cr%C3%A9dito**%20(17%2C59%25)%2C%20seguido%20por%20**Cart%C3%A3o%20de%20D%C3%A9bito**%20(11%2C50%25)%20e%20**Dinheiro**%20(11%2C01%25).%20Recomenda-se%20incentivar%20pagamento%20por%20PIX%20ou%20Dinheiro%2C%20oferecendo%20descontos%20nos%20produtos%20para%20compras%20com%20essas%20formas%20de%20pagamento._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%2012.%20Busca%20por%20clientes%20sem%20endere%C3%A7o%2C%20produtos%20sem%20categoria%20ou%20notas%20fiscais%20sem%20itens%20associados%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(engine%2C%20mo)%3A%0A%20%20%20%20_df%20%3D%20mo.sql(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20select%20clientes_null%2C%20produtos_null%2C%20categoria_null%20from%20(select%20id_cliente%2C%20data_cadastro%2C%20id_bairro%2C%20rua%2C%20ba.descricao%2C%20ci.descricao%20%20from%20vendas.nota_fiscal%20nf%0A%20%20%20%20%20%20%20%20join%20geral.pessoa%20pe%20on%20pe.id%20%3D%20nf.id_cliente%0A%20%20%20%20%20%20%20%20join%20geral.endereco%20en%20on%20en.id_pessoa%20%3D%20pe.id%0A%20%20%20%20%20%20%20%20join%20geral.bairro%20ba%20on%20ba.id%20%3D%20en.id_bairro%20%0A%20%20%20%20%20%20%20%20join%20geral.cidade%20ci%20on%20ci.id%20%3D%20ba.id_cidade%0A%20%20%20%20%20%20%20%20where%20rua%20is%20null%20or%20ba.descricao%20is%20null%20or%20id_bairro%20is%20null%20or%20%20ci.descricao%20%20is%20null)%20as%20clientes_null%2C%0A%20%20%20%20%20%20%20%20(select%20id_categoria%2C%20nome%2C%20c.id%2C%20descricao%20from%20vendas.produto%20p%0A%20%20%20%20%20%20%20%20join%20vendas.categoria%20c%20on%20c.id%20%3D%20p.id_categoria%20%0A%20%20%20%20%20%20%20%20where%20id_categoria%20is%20null%20or%20nome%20is%20null%20or%20c.id%20is%20null%20or%20descricao%20is%20null)%20as%20produtos_null%2C%0A%20%20%20%20%20%20%20%20(select%20*%20from%20vendas.item_nota_fiscal%20nf%20%0A%20%20%20%20%20%20%20%20join%20vendas.produto%20p%20on%20p.id%20%3D%20nf.id_produto%0A%20%20%20%20%20%20%20%20where%20nome%20is%20null%20or%20id_categoria%20is%20null)%20as%20categoria_null%0A%20%20%20%20%20%20%20%20%22%22%22%2C%0A%20%20%20%20%20%20%20%20engine%3Dengine%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23_Retornou%20**nenhum%20resultado**%2C%20o%20que%20significa%20que%20a%20base%20de%20dados%20n%C3%A3o%20cont%C3%A9m%20clientes%20sem%20endere%C3%A7o%2C%20produtos%20sem%20categoria%20ou%20notas%20fiscais%20sem%20itens%20associados%20(completude%20de%20100%25)._%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
c80c2060ac6e652787e3cfa4a85bdf62