Два COUNT в запросе
Понадобилось получить два COUNT с разными условиями в одном запросе если кому то понадобиться то это достаточно просто сделать
Более подробный пример с pdoPage
Если есть способ проще и правильнее буду рад увидеть его в комментариях
COUNT(case when modResource.parent = 2 then 1 else null end) as getCountArticle,
COUNT(case when modResource.parent = 38 then 1 else null end) as getCountProgect',
Более подробный пример с pdoPage
<div id="pdopage">
<div class="rows">
{$_modx->runSnippet('!pdoPage', [
'element' => 'pdoUsers',
'tpl' => 'tpl.UsersNoIf',
'limit' => '24',
'ajaxMode' => 'button',
'ajaxTplMore' => '@INLINE <button class="btn btn-more">Загрузить еще</button>',
'sortdir'=>'desc',
'select' => [
'modUser' => '*',
'modResource' => 'modResource.createdby, modResource.parent, modResource.id,
COUNT(case when modResource.parent = 2 then 1 else null end) as getCountArticle,
COUNT(case when modResource.parent = 38 then 1 else null end) as getCountProgect',
],
'leftJoin' => [
'modResource' => [
'class' => 'modResource',
'on' => 'modResource.createdby = modUser.id'
]
]
'where' => ['modResource.hidemenu' => 0]
])}
</div>
{$_modx->getPlaceholder('page.nav')}
</div>
Может кончено вы об этом все знаете, но мало ли кому то поможет Если есть способ проще и правильнее буду рад увидеть его в комментариях
Поблагодарить автора
Отправить деньги
Комментарии: 1
В MySQL нативно делал единой выборкой данные в различных разрезах, суть примерно та же, но запись короче
Понятно, что пример можно одной группировкой переделать, но это только пример ))
SELECT SUM(IF(`status` = 'new', 1, 0)) as CountNew, SUM(IF(`status` = 'close', 1, 0)) as CountClose ...
Понятно, что пример можно одной группировкой переделать, но это только пример ))
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.