@ganbatte

Как сделать запрос в запросе в mysql?

вот есть такая таблица 'table'
|id |id_2|name|status| date|

надо что бы при запросе вывел где status= true, и count_id = количество id за 30 дней.
|id|id_2|name|status|date| count_id |

умею только вот это
select * from table where status=true ; А как добавить дополнительный столбец count id где запрашивает количество id за 30 дней ?
  • Вопрос задан
  • 63 просмотра
Решения вопроса 2
shevchenko__k
@shevchenko__k
Помогаю новорожденным web программистам
Тебе поможет подзапрос https://metanit.com/sql/mysql/4.8.php и функция count https://oracleplsql.ru/mysql-function-count.html
Ответ написан

надо что бы при запросе вывел где status= true, и count_id = количество id за 30 дней.
|id|id_2|name|status|date| count_id |


  • количество записей считается COUNT при группировке по полям (см. GROUP BY), в данном случае по интервалу дат

  • но... в таком виде
    |id|id_2|name|status|date| count_id |
    вывести не получится! т.к. группировать по полям |id|id_2|name| не имеет смысла, они могут быть уникальны и никакого COUNT за интервал не получится, например как считать количество в интервале для id=1,2,3 ... ??? это группироваться никак не будет вообще, будет выводиться построчно для каждого id и количество будет Всегда равно =1 и так для всех id. определитесь что вам надо?! конкретно

  • можно выбрать записи со статусом true и посчитать количество в интервале, для этого поле date привести в некий интервальный формат, либо если надо за ПОСЛЕДНИЕ 30 дней, то просто:
    SELECT count(id) count_id
      FROM tbl
      WHERE status = 'true'
        AND date >= now() - interval 30 day
    ;




см. пример на dbfiddle
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы