Есть 2 таблицы
MAs:
id
user_id
description_id
count
date
MADescriptions
id
action
Мне надо посчитать кол-во людей(user_id) и сумму(count) за определенный период (date), сгруппировав по действиям (action)
действий много
spent_1 spent_2 ... spent_n
got_1 got_2 ... got_n
buy_1 buy_2 ... buy_n
Этот запрос мне по отдельности считает сначала spent,потом got,затем buy Все правильно делает,но как это сделать в одном запросе?
SELECT MAs.date ,
count(DISTINCT (MAs.user_id)) AS users,
sum(MAs.count) AS sum
FROM
MAs
JOIN
MADescriptions
ON
MAs.description_id = MADescriptions.id
WHERE
MAs.date BETWEEN '2018-10-08' AND '2018-10-15'
AND MADescriptions.action LIKE 'spent%'; //тут меня на 'got%' 'buy%'
Пытался что то типа такого сделать, оно считает,но ответы разные, если сравнивать с ответами полученными их запроса выше
SELECT MAs.date
, count(DISTINCT (MAs.user_id)) AS users
, sum(MADescriptions.action LIKE 'spent%') AS spent
, sum(MADescriptions.action LIKE 'got%') AS got
, sum(MADescriptions.action LIKE 'bought%') AS bought
FROM
MAs
JOIN
MADescriptions
ON
MAs.description_id = MADescriptions.id
WHERE
MAs.date BETWEEN '2018-10-08' AND '2018-10-15'
Group by MAs.date
Можно, я думаю, использовать CASE
GROUP BY
CASE
MADescriptions.action type LIKE 'spent%' THEN 'spent'
MADescriptions.action type LIKE 'got%' THEN 'got'
MADescriptions.action type LIKE 'buy%' THEN 'buy'
ELSE NULL
END
Хочу написать общий чат на PHPПосле того как юзер залогинился он переходит на страницу чата, где вводит свой никнейм и может писать сообщения...