sql - MySql 5.7 ORDER BY clause is not in GROUP BY clause and contains nonaggregated column -


i'm trying figure out without disabling "only_full_group_by" in my.ini

here query:

select    p.title,   count(t.qty) total    payments t    left join products p      on p.id = t.item  t.user = 1  group t.item order t.created desc; 

and tables:

payments:

id     item   user   created ============================ 1      1      1      2017-01-10 2      2      1      2017-01-11 3      3      1      2017-01-12 4      4      1      2017-01-13 5      1      1      2017-01-14 

products:

id     title    created ========================== 1      first     2016-12-10 1      second    2016-12-11 1      third     2016-12-12 1      fourth    2016-12-13 

the final result should lie:

name    total first   2 second  1 third   1 fourth  1 

but if change query group t.item, t.created error gone, end 5 records instead of four, not want. since i'm grouping items based on "item" field, there should 4 records

this query:

select p.title, count(t.qty) total  -------^ payments t left join      products p       on p.id = t.item  t.user = 1  group t.item ---------^ order t.created desc; ---------^ 

the pointed places have issues. notice select , group by referring different column. in left join, (pretty much) want aggregate in first table, not second.

the order by problem. not aggregating column, need decide value want. guessing min() or max():

select p.title, count(t.qty) total  payments t left join      products p       on p.id = t.item  t.user = 1  group p.title order max(t.created) desc; 

i add count(t.qty) suspect. qty refers "quantity" , want sum: sum(t.qty).


Comments

Popular posts from this blog

python - How to insert QWidgets in the middle of a Layout? -

python - serve multiple gunicorn django instances under nginx ubuntu -

module - Prestashop displayPaymentReturn hook url -