mysql - Specific query to get scores as a set of qualification rates using averages -


please note there's select i've made below code

i've created sql fiddle don't have recreate example in local db. http://sqlfiddle.com/#!9/4c657

the problem instead of getting rates numbers should them percentages, such as:

bad : 25%, 10%,verygood: 30%: excellent:45%

currently i'm showing numbers, i'm not sure if should use select (select ...) group or if there's better way it. i'm in doubt i'd have suggestions. thanks!

thanks

    /*what i've got far*/      select qg.name questiongroup,q.name question,(rate=1) bad ,(rate=2) regular,(rate=3) good, (rate=4) verygood, (rate=5) excellent answers inner join questions q on q.id=a.questionid inner join questiongroups qg on qg.id  = q.groupid;      create table `guidedvisits` (       `id` int(10) unsigned not null auto_increment,       `date` date not null,       primary key (`id`)     ) engine=innodb auto_increment=3 default charset=utf8;      create table `questiongroups` (       `id` int(10) unsigned not null auto_increment,       `name` varchar(20) default null,       primary key (`id`)     ) engine=innodb auto_increment=3 default charset=utf8;       create table `questions` (       `id` int(10) unsigned not null auto_increment,       `groupid` int(10) unsigned not null,       `name` varchar(120) not null,       primary key (`id`),       key `idx_groupid` (`groupid`)     ) engine=innodb auto_increment=5 default charset=utf8;        create table `answers` (         `id` int(10) unsigned not null auto_increment,         `visitid` int(10) unsigned not null,         `questionid` int(10) unsigned not null,         `rate` tinyint(4) not null,         primary key (`id`),         key `idx_questionid` (`questionid`),         key `idx_visitid` (`visitid`)       ) engine=innodb auto_increment=9 default charset=utf8;       insert `questiongroups` values (1,'about us'),(2,'facility');     insert `questions` values (1,1,'did us?'),(2,1,'what think our ads?'),(3,2,'were our reception chairs comfortable?'),(4,2,'was clean expect?');     insert `guidedvisits` values (1,'2015-03-31'),(2,'2015-03-31');     insert `answers` values (1,1,1,3),(2,1,2,4),(3,1,3,4),(4,1,4,5),(5,1,1,5),(6,1,2,5),(7,1,3,5),(8,1,4,5); 

select qg.name questiongroup,q.name question,  case when avg(rate) < 25 'bad' when avg(rate) < 35 'good' .. end ratedesc   answers inner join questions q     on q.id=a.questionid inner join questiongroups qg     on qg.id  = q.groupid 

group qg.name, q.name


Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -