mysql - SQL Statement - Create a Report with three totals -


having little trouble creating query in mysql. think i'm missing obvious.

i have users table, has column called device (android, ios, windows 3 possible values). create report tells me how many users registered each day (so group date) each device (so total in each column).

i able make query tells me how many users registered total first column, couldn't sub-queries working in next few columns.

right working query tried this:

select count(u.userid) 'total users', date(u.datecreated) 'day' users group date(u.datecreated) order u.datecreated desc 

this produces nice aggregated report me shows # of users created each day (the total 1 column, date total second column)

so expanding on working query above, tried making subquery keeps producing '1' result new column.

select count(distinct u.userid) 'total users',  (select count(u1.userid) users u1 u1.datecreated = u1.datecreated , u.device = 'android' group u1.datecreated) 'android users', date(u.datecreated) 'day' users u group date(u.datecreated) order u.datecreated desc 

how inner query produce total number of android users day?

for each type of device can count subtotal using case statement.

try this:

select     count(u.userid) 'total users',     sum(case when device = 'android' 1 end) android,     sum(case when device = 'ios' 1 end) ios,     sum(case when device = 'windows' 1 end) windows,     date(u.datecreated) 'day' users group date(u.datecreated) order date(u.datecreated) desc 

Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

android - Keyboard hides my half of edit-text and button below it even in scroll view -

css - Make div keyboard-scrollable in jQuery Mobile? -