i fetching data 4 different tables:
- leads
- payu_transactions
- corporate_user_rides
- corporate_users
and there conditions:
- user rides should grater 0
- there should number of registered , active users
- there time period
i have written sql queries not getting expected result- problem number of rides count , user count.
for e.g-
lets corporate x having 38 rides , 23 users it's showing 7866 rides , 7866 users.
another corporate y having 18 rides , 5 users it's showing 90 rides , 90 users.
can please help, not sure what's doing here.
i tried this-
query
select l.id leadid, l.corporate_id corporateid, "p-1" priority, l.source, l.user_name firstname, l.user_name lastname, l.corporate_name corpname, l.user_mail_id email, l.phone_number phone, l.created_at leadcreation, l.comments, count(cu.id) users, count(cur.id) rides, put.amount payment leads l left join payu_transactions put on l.user_mail_id = put.email left join corporate_user_rides cur on l.corporate_id = cur.corporate_id left join corporate_users cu on l.corporate_id = cu.corporate_id l.created_at between '2015-03-16 12:00:00' , '2016-03-17 12:00:00' group l.user_mail_id having count(cur.id) > 0 , count(cu.id) > 0 , count(case when cu.status in ( 'active' ) 1 end) > 0;
help appreciated.
use count (distinct column.name)
instead of count(column.name)
.
Comments
Post a Comment