Relatórios, resumos e sumários no MySQL

Um sistema de banco de dados é útil para armazenar e manipular informações, na forma de registros.
Além dos registros nus e crus, podem oferecer informações resumidas, sumários, informações tratadas e filtradas de acordo com determinados contextos.
Resumos são úteis, quando você deseja ter uma ideia do quadro geral, em vez dos detalhes.
mysql- dolphin-gray-TWITTER
Nesta página, você vai encontrar diversos links para artigos que ensinam, passo a passo, receitas de relatórios no MySQL.
Vai encontrar, também algumas tabelas, que podem ser usadas (opcionalmente) para entender melhor os exemplos dos artigos.
Quando bem feitos, os relatórios resumidos ajudam a compreender melhor uma situação do que uma longa lista de registros, cheia de dados. Além disto, permitem responder questões como “Quantos?” ou “Qual é o total?” ou “Qual é o intervalo de valores?” etc.
Se você está na posição de gestor de negócios, pode querer saber quantos clientes são atendidos em determinada região, qual o volume de vendas ou serviços prestados, dentro de um período específico etc.
Um bom sumário pode ajudar a direcionar a estratégia de marketing e de contato com seus clientes.
Você pode usar softwares de planilhas para fazer isto ou permitir que o MySQL o faça.
Há dois tipos de resumo bastante comuns:

  • o resumo de contagem, que pode ser aquele em que o aplicativo mostra a quantidade de clientes por estado ou por qualquer outra categoria;
  • o resumo baseado em totalizações, que pode mostrar totais contextualizados de vendas, calculados a partir de valores de vendas individuais constantes nos registros.

Depois que o sistema de banco de dados, junto com um conjunto de aplicativos para manipulá-lo, estiverem prontos, dificilmente os gestores irão querer ver o conteúdo individual de qualquer registro.
Um outro tipo de resumo ou relatório é um que não envolve nem contagens, nem somas, mas uma lista de valores únicos. Por exemplo, em vez da soma total de clientes por estado… em quais estados nós temos clientes. Neste caso, você não quer saber quantas instâncias de cada valor estão presentes no banco de dados, mais apenas quais estão presentes.
O que realmente interessa é a capacidade dos aplicativos de gerar relatórios que permitam uma visão geral dos negócios, para dar base à tomada de decisões.
O MySQL permite que se crie uma ampla variedade de relatórios, a partir de quase todos os tipos de valores, sejam numéricos, strings, datas etc.
Relatórios que envolvam totais ou médias, só podem ser constituídos a partir de valores numéricos.
Valores em caracteres, como os nomes dos estados, podem ser computados para alimentar (por exemplo) uma análise demográfica da sua clientela.
Este tipo de operação envolve as seguintes construções SQL:

  • Para computar valores referentes a um conjunto de valores individuais use funções que agreguem estes valores em grupos. Entre as funções mais comuns, incluem-se COUNT(), que conta registros ou valores em um resultado de consulta; MIN() e MAX(), que são usadas para encontrar os valores mínimos ou máximos em uma relação; e SUM() e AVG() que produzem, respectivamente, a soma e a média de valores.
    Com a cláusula GROUP BY, é possível produzir pequenos totais, referentes a subconjuntos dentro da sua relação.
  • Para obter uma lista de valores únicos, use SELECT DISTINCT ao invés de apenas SELECT.
  • Para contar quantos valores distintos há, use COUNT (DISTINCT) ao invés de apenas COUNT.

Nos artigos, que seguem abaixo, serão abordadas algumas técnicas básicas de criação de relatórios e como executar algumas operações de resumo mais complexas.

Veja, a seguir, alguns exemplos de tabelas que serão usados nos artigos citados.


O uso destas tabelas é opcional — você pode aplicar os exemplos dos artigos do site em praticamente qualquer tabela que tiver à sua disposição.
Crie suas novas tabelas com cuidado e verifique a preexistência de outras com o mesmo nome, para evitar perda de dados.

CREATE TABLE IF NOT EXISTS `clientesEstaduais` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `NomeCliente` varchar(255) default NULL,
  `RegiaoCliente` varchar(50) default NULL,
  `DataCadastro` varchar(255),
  `CreditCliente` mediumint default NULL,
  PRIMARY KEY (`id`)
) AUTO_INCREMENT=1;

INSERT INTO `clientesEstaduais` VALUES (1,'Kiara Meadows','SP','2016-9-20',2614),(2,'Iris Moreno','SP','2016-6-15',13818),(3,'Camilla Klein','GO','2016-1-20',4954),(4,'Stephanie Thomas','BA','2016-2-9',1678),(5,'Emerald Alston','PE','2016-12-15',12574),(6,'Nevada Phelps','PR','2016-8-15',5080),(7,'Nita Solomon','MG','2016-9-21',2267),(8,'Suki Ayers','MG','2016-9-17',12884),(9,'Camille Ray','RS','2016-2-16',13807),(10,'Chloe Gibbs','CE','2016-7-11',8165),(11,'Melanie Mueller','PA','2016-2-10',6067),(12,'Britanney Lynch','BA','2016-3-17',689),(13,'Rhonda Leblanc','GO','2016-7-19',10063),(14,'Winter Carson','CE','2016-5-13',2524),(15,'Lunea Frazier','MG','2016-8-10',9664),(16,'Skyler Henderson','SP','2016-9-11',17186),(17,'Megan Marshall','SP','2016-12-9',16701),(18,'Taylor Mcdonald','MG','2016-5-21',6015),(19,'Clare Bauer','SP','2016-5-11',13122),(20,'MacKenzie Davidson','SP','2016-11-20',6531),(21,'Bryar Foley','RJ','2016-8-14',14861),(22,'Denise Shepherd','MA','2016-3-20',18347),(23,'Nayda Holder','PR','2016-10-14',14353),(24,'Marcia Drake','SP','2016-10-15',11546),(25,'Beverly Clark','SP','2016-4-18',16745),(26,'Nichole Bridges','SP','2016-1-20',1860),(27,'Amela Mcknight','GO','2016-6-14',14530),(28,'Ora Riddle','SP','2016-12-12',9443),(29,'Amity Webster','RS','2016-8-13',5582),(30,'Regina Fitzpatrick','SP','2016-10-9',15110),(31,'Fredericka Castillo','SP','2016-11-9',19009),(32,'Avye Sweeney','MG','2016-10-16',12618),(33,'Tamara Blevins','SP','2016-8-15',7839),(34,'Dakota Doyle','MG','2016-6-17',3321),(35,'Ursula Chang','PE','2016-3-19',540),(36,'Adena Ferrell','SP','2016-8-19',19637),(37,'Orla Landry','MA','2016-1-18',8301),(38,'Fredericka Crane','SP','2016-8-18',9590),(39,'Katelyn Moses','SP','2016-12-17',1329),(40,'Ariel Hayes','SP','2016-5-18',15002),(41,'Piper Macias','RJ','2016-8-20',14892),(42,'Imelda Vasquez','MG','2016-7-9',2225),(43,'Iris Joyce','BA','2016-9-15',2291),(44,'Athena Cline','SP','2016-3-17',6530),(45,'Jana Shelton','PR','2016-8-10',1312),(46,'Aurora Whitney','SP','2016-8-18',5953),(47,'Tana Hodge','MG','2016-9-14',9688),(48,'Gisela Sherman','RS','2016-2-10',12022),(49,'Joelle Osborne','RJ','2016-6-19',11016),(50,'Regina Campbell','PR','2016-11-17',3823),(51,'Susan Michael','RS','2016-10-9',10534),(52,'Leilani Campbell','MG','2016-12-14',15892),(53,'Alea Byrd','CE','2016-6-19',5592),(54,'Kim Padilla','MG','2016-10-17',4901),(55,'Deanna Steele','RS','2016-8-13',836),(56,'Heather Ellis','PE','2016-12-16',13848),(57,'Liberty Meyers','RJ','2016-12-9',13217),(58,'Marny Morgan','SP','2016-6-11',17508),(59,'Juliet Miller','PR','2016-7-12',14022),(60,'Delilah Acevedo','MG','2016-7-10',18295),(61,'Cara Rush','SP','2016-11-20',13091),(62,'Mechelle Faulkner','SP','2016-12-9',8757),(63,'Miriam Riley','PA','2016-4-16',385),(64,'Willa Gentry','BA','2016-9-9',15381),(65,'Hadassah Bartlett','GO','2016-11-13',11508),(66,'Jane Hardy','MG','2016-3-21',11327),(67,'Scarlet Sims','MG','2016-1-16',4280),(68,'Jessica Hansen','RJ','2016-8-12',13102),(69,'Ciara Shepard','RJ','2016-8-10',13158),(70,'Tanisha Lara','SP','2016-9-14',4789),(71,'Glenna Hoover','RJ','2016-10-17',3550),(72,'Inez Melendez','SP','2016-1-9',8506),(73,'Lois Beck','MA','2016-3-9',15411),(74,'Whitney Chavez','SP','2016-5-21',4826),(75,'Shaine Durham','BA','2016-6-15',17979),(76,'Taylor Ingram','CE','2016-3-16',15843),(77,'Ori Jacobs','BA','2016-3-11',8261),(78,'Joy Barr','MG','2016-7-10',19442),(79,'Sheila Alvarado','BA','2016-12-15',12751),(80,'Yvette Franks','SP','2016-6-20',10385),(81,'Kim Berg','SP','2016-2-20',3886),(82,'Constance Owens','BA','2016-2-9',1360),(83,'Pascale French','PR','2016-9-15',5243),(84,'Myra Hampton','MG','2016-5-12',7964),(85,'Aiko Valenzuela','RS','2016-4-15',18147),(86,'Dana Crawford','RJ','2016-8-19',13839),(87,'Barbara Mckee','GO','2016-12-12',1414),(88,'Olympia Mays','PE','2016-9-19',13821),(89,'Oprah Murray','SP','2016-10-14',11363),(90,'Macy Glenn','BA','2016-9-15',16269),(91,'Orla Ayers','PE','2016-3-16',16749),(92,'Kirsten Phillips','MG','2016-5-21',9008),(93,'Sonya Foreman','SP','2016-11-14',385),(94,'Tanya Barr','CE','2016-5-18',3252),(95,'Indigo Garner','RJ','2016-7-16',3813),(96,'Lacota Lindsey','PB','2016-1-16',13249),(97,'Adria Forbes','SP','2016-10-10',3157),(98,'Yuri Graham','BA','2016-3-20',3432),(99,'Stephanie Glass','MG','2016-8-13',14600),(100,'Dakota Schultz','MG','2016-2-13',2181);

A tabela, que segue contém campos de nomes, sobrenomes, estados (do Brasil) e uma coluna numérica, chamada “Créditos”.

CREATE TABLE IF NOT EXISTS `clientesEmail` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `Nome` varchar(255) default NULL,
  `Sobrenome` varchar(255) default NULL,
  `Estado` varchar(50) default NULL,
  `Email` varchar(255) default NULL,
  `Creditos` mediumint default NULL,
  PRIMARY KEY (`id`)
) AUTO_INCREMENT=1;

INSERT INTO `clientesEmail` (`Nome`,`Sobrenome`,`Estado`,`Email`,`Creditos`) VALUES ("Kiona","Espinoza","São Paulo","Maecenas@id.co.uk",7),("Winter","Landry","São Paulo","Quisque@gravidaAliquam.com",3),("Iris","Davidson","Rio Grande do Sul","auctor.Mauris@lacusvestibulum.com",8),("Melanie","Tanner","Pernambuco","sit.amet.faucibus@lacus.com",4),("Paula","Rasmussen","Paraná","cubilia.Curae.Phasellus@etultricesposuere.net",3),("Jael","Cunningham","Ceará","ultrices.Duis.volutpat@posuerecubiliaCurae.com",4),("Bertha","Gonzalez","Rio Grande do Sul","urna.Vivamus.molestie@leoMorbi.co.uk",3),("Beverly","Webb","Pernambuco","commodo.hendrerit.Donec@maurisipsumporta.ca",10),("Regina","Parrish","Bahia","velit.Cras@vulputate.co.uk",3),("Remedios","Weber","Rio de Janeiro","dapibus.rutrum.justo@malesuadafames.co.uk",10);
INSERT INTO `clientesEmail` (`Nome`,`Sobrenome`,`Estado`,`Email`,`Creditos`) VALUES ("Harriet","Adkins","Minas Gerais","Integer.id@nasceturridiculus.org",2),("Maya","Justice","Rio de Janeiro","nisl.Quisque.fringilla@habitantmorbi.edu",8),("Rachel","Dillon","São Paulo","mattis.velit@Aliquamvulputate.org",4),("Candice","Oconnor","São Paulo","placerat@idblanditat.net",5),("Lisandra","Alvarado","Pará","ipsum.Phasellus@pedeetrisus.edu",0),("Penelope","Kerr","Santa Catarina","sed.est.Nunc@Lorem.ca",10),("Nora","Webster","Minas Gerais","fermentum.convallis.ligula@vestibulumneceuismod.ca",1),("Caryn","Petty","Ceará","Aliquam.ornare@nasceturridiculus.com",3),("Constance","Guy","Ceará","diam.Pellentesque@blanditviverra.net",1),("Hiroko","Lawrence","São Paulo","Maecenas.malesuada@velit.ca",6);
INSERT INTO `clientesEmail` (`Nome`,`Sobrenome`,`Estado`,`Email`,`Creditos`) VALUES ("Nina","Clark","Bahia","accumsan@semperduilectus.com",6),("Martina","Santana","Paraná","id.mollis.nec@infaucibusorci.net",4),("Christine","Combs","Pará","Sed.malesuada@Nuncacsem.co.uk",0),("Oprah","Mejia","Bahia","cursus.purus@rutrum.org",8),("Keelie","Gould","Rio de Janeiro","Fusce.mollis.Duis@egestasSedpharetra.ca",0),("Tashya","Acevedo","São Paulo","egestas.nunc@magnaet.co.uk",1),("Macy","Gordon","São Paulo","orci.consectetuer@uterosnon.com",1),("Octavia","Moran","Pernambuco","feugiat.tellus.lorem@mi.org",1),("Rylee","Pittman","Maranhão","egestas.Fusce@Vivamus.co.uk",2),("India","Barnes","Bahia","nunc.nulla@Quisqueimperdieterat.net",8);
INSERT INTO `clientesEmail` (`Nome`,`Sobrenome`,`Estado`,`Email`,`Creditos`) VALUES ("Mariko","Mckenzie","São Paulo","semper.et.lacinia@amet.co.uk",2),("Aubrey","Franklin","Rio Grande do Sul","sagittis.Nullam.vitae@Etiamligulatortor.edu",1),("Candace","Armstrong","São Paulo","et.magna@cursusnon.com",2),("Flavia","Briggs","São Paulo","Morbi.sit.amet@Duisdignissimtempor.net",6),("Alexa","Henderson","Pernambuco","nunc.sed@enimEtiamimperdiet.co.uk",6),("Sage","Craig","Goiás","nec@Suspendisse.org",4),("Eve","Wolf","Rio Grande do Sul","magna.a.neque@velsapienimperdiet.ca",7),("Tana","Hodge","Santa Catarina","massa.Integer@SuspendisseduiFusce.edu",5),("Blaine","Patterson","Bahia","amet@et.co.uk",8),("Maryam","Schmidt","São Paulo","Fusce.fermentum.fermentum@montesnasceturridiculus.co.uk",5);
INSERT INTO `clientesEmail` (`Nome`,`Sobrenome`,`Estado`,`Email`,`Creditos`) VALUES ("Pearl","Vazquez","Rio de Janeiro","non.luctus.sit@elitafeugiat.co.uk",5),("Deirdre","Nieves","Rio Grande do Sul","orci.Ut.sagittis@Cumsociis.net",7),("Deirdre","Petty","Rio Grande do Sul","Duis.cursus@in.com",5),("Tanisha","Lynch","Rio Grande do Sul","aliquet.Phasellus.fermentum@Aliquam.net",4),("Jana","Green","Rio Grande do Sul","Vivamus.rhoncus.Donec@utodiovel.ca",7),("Cherokee","Harris","Paraná","Morbi.vehicula.Pellentesque@elitpretium.com",10),("Velma","Pena","Bahia","cursus@sed.edu",9),("Lavinia","Kennedy","Minas Gerais","Aliquam.rutrum.lorem@velit.net",7),("Sonia","Horne","Pará","varius.et.euismod@quis.edu",1),("Renee","Jarvis","Rio Grande do Sul","semper.pretium.neque@nonjustoProin.co.uk",1);
INSERT INTO `clientesEmail` (`Nome`,`Sobrenome`,`Estado`,`Email`,`Creditos`) VALUES ("Alea","Boyd","São Paulo","eu.tellus@luctus.edu",5),("Yen","Mcfarland","Maranhão","eu.placerat@Fusce.edu",9),("Maris","Burris","Minas Gerais","at.risus@sapiengravidanon.edu",9),("Christine","Dunn","Bahia","sem@amagna.net",2),("Myra","Strong","Bahia","pede@Proinvelit.ca",1),("Jada","Lambert","Rio de Janeiro","turpis@nullavulputate.com",1),("Whoopi","Young","São Paulo","tempor@enimsit.ca",3),("Wanda","Kirk","São Paulo","ut.erat@liberoProinsed.org",7),("Belle","Young","Rio de Janeiro","Integer@vitaeorciPhasellus.com",6),("Rhonda","Higgins","Rio de Janeiro","elit.Nulla@velitegetlaoreet.net",9);
INSERT INTO `clientesEmail` (`Nome`,`Sobrenome`,`Estado`,`Email`,`Creditos`) VALUES ("Megan","Newton","Paraná","amet.ornare@quismassaMauris.com",4),("Jessica","Maddox","Pernambuco","sed.orci.lobortis@necimperdietnec.ca",3),("Kessie","Reilly","Bahia","scelerisque@in.com",6),("Priscilla","Olsen","Rio Grande do Sul","Nulla@diamat.co.uk",7),("Genevieve","Bowman","São Paulo","orci@Aliquamnisl.edu",2),("Eliana","Moore","Paraíba","tincidunt@semmagna.edu",2),("Adara","Mills","Bahia","lobortis.quam.a@magnaaneque.org",8),("Sylvia","Nelson","Rio de Janeiro","malesuada.ut@et.co.uk",6),("Maggie","Pollard","São Paulo","Nullam.lobortis.quam@vehicula.net",8),("Carissa","Jarvis","Pará","Sed.dictum.Proin@quamelementumat.org",8);
INSERT INTO `clientesEmail` (`Nome`,`Sobrenome`,`Estado`,`Email`,`Creditos`) VALUES ("Charde","Wells","Santa Catarina","Etiam.gravida.molestie@nostra.com",4),("Nyssa","Kinney","Maranhão","Maecenas.libero.est@feugiattelluslorem.net",3),("Laurel","Bennett","Bahia","eu@primis.co.uk",0),("Avye","Montgomery","Santa Catarina","nunc@erat.ca",5),("Patricia","Roth","Ceará","sit@etmagnis.co.uk",3),("Daria","Montoya","São Paulo","egestas@idlibero.com",1),("Sopoline","Ingram","São Paulo","Suspendisse.ac@et.net",10),("Rhona","Dotson","São Paulo","Aliquam.erat.volutpat@venenatis.org",4),("Kay","Mendoza","São Paulo","eget.venenatis@facilisis.org",6),("Teegan","Cox","São Paulo","lorem.eget.mollis@euismod.com",2);
INSERT INTO `clientesEmail` (`Nome`,`Sobrenome`,`Estado`,`Email`,`Creditos`) VALUES ("Kelly","Stewart","Paraíba","vestibulum.nec@nonnisiAenean.co.uk",10),("Dana","Dickson","São Paulo","elit.erat@incursus.ca",0),("Ainsley","Castro","Bahia","Cum.sociis.natoque@atlibero.co.uk",8),("Chantale","Cochran","São Paulo","quis.pede@ipsum.ca",0),("Cynthia","Sellers","Santa Catarina","tortor.at@lacus.org",2),("Ella","Hunter","Minas Gerais","eu.dolor@velit.co.uk",3),("Sybill","Melendez","Paraíba","Quisque.imperdiet.erat@auctorvelit.net",3),("Cassady","Tucker","Minas Gerais","convallis@augueeutempor.ca",10),("Ora","Armstrong","Santa Catarina","Donec.porttitor@Naminterdum.com",5),("Kimberley","Neal","São Paulo","Donec@semutcursus.com",2);
INSERT INTO `clientesEmail` (`Nome`,`Sobrenome`,`Estado`,`Email`,`Creditos`) VALUES ("Leila","Fleming","Pará","aliquet.diam@dictumcursusNunc.edu",8),("Tatyana","Odom","Paraná","Vivamus@fames.net",5),("Tasha","Matthews","Minas Gerais","purus.mauris@DonecestNunc.co.uk",7),("Myra","Trujillo","Goiás","mauris@Quisque.edu",6),("Willa","Hewitt","Paraíba","diam@non.net",5),("Ulla","Lindsey","Pernambuco","risus.varius@ametrisus.com",1),("Sandra","Ruiz","Rio de Janeiro","dis.parturient.montes@elit.org",1),("Claudia","Hunt","Rio de Janeiro","convallis.est@Duissit.com",1),("Idola","Curry","Rio Grande do Sul","orci@semperpretium.ca",1),("Wilma","Sears","Paraná","tempus.mauris.erat@Vestibulumuteros.com",10);

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.