Сгруппировать данные по Like % значениям

151
01 марта 2019, 17:30

Есть 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
Answer 1

Можно, я думаю, использовать 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
READ ALSO
PHP Parse error: syntax error, unexpected '}'

PHP Parse error: syntax error, unexpected '}'

Подскажите в чем проблемма, ни как не соображу

144
WHERE ? php pdo не работает

WHERE ? php pdo не работает

Есть следующий код:

135
Отправка сообщения в поле чата PHP

Отправка сообщения в поле чата PHP

Хочу написать общий чат на PHPПосле того как юзер залогинился он переходит на страницу чата, где вводит свой никнейм и может писать сообщения...

143
Curl post проверка содержимого

Curl post проверка содержимого

Подскажите пожалуйста, есть curl запрос на php

161