Size: a a a

2020 November 23

Vr

Vuzopedia ru in Laravel Pro
это как пример. я тип плохой разработчик, повезло сделать посещаемый сайт( до этой ситуации долго не занимался разработкой, а всяким больше управлением итд. а как собрать каунты для фильтров по разным полям одним запросом? если нам надо например получить сколько элементов у которых param1 = 0, а сколько param2 = 1, а сколько param3 = 3 например
источник

Vr

Vuzopedia ru in Laravel Pro
есть lists('id') - элементов из списка. и вот надо насобирать инфу. не придумал как одним запросом это сделать
источник

RK

Roman Kolosov in Laravel Pro
Vuzopedia ru
это как пример. я тип плохой разработчик, повезло сделать посещаемый сайт( до этой ситуации долго не занимался разработкой, а всяким больше управлением итд. а как собрать каунты для фильтров по разным полям одним запросом? если нам надо например получить сколько элементов у которых param1 = 0, а сколько param2 = 1, а сколько param3 = 3 например
много вариантов с точки зрения sql
источник

TV

Tairau Viktar in Laravel Pro
Roman Kolosov
можно же одним запросом все каунты собрать
+
https://reinink.ca/articles/calculating-totals-in-laravel-using-conditional-aggregates
Да и в целом можно его блог почитать, лишним не будет
источник

RK

Roman Kolosov in Laravel Pro
вот да
источник

RK

Roman Kolosov in Laravel Pro
именно про это и говорил
источник

RK

Roman Kolosov in Laravel Pro
даже сложно с ходу подсчитать насколько это быстрее и проще для железа, нежели отдельный запросы с агрегацией на коллекции)))
источник

A

Andrey in Laravel Pro
О да
источник

Vr

Vuzopedia ru in Laravel Pro
ничосебе
источник

RK

Roman Kolosov in Laravel Pro
хм а те конструкции которые он в raw пишет разве общие для всех субд? вроде ж синтаксис мускуля
источник

A

Andrey in Laravel Pro
Помню костылил такое решение в лоб
источник

Vr

Vuzopedia ru in Laravel Pro
спасибо! часть проблем это точно решит. не фильтрами едиными там, но часть точно решит
источник

TV

Tairau Viktar in Laravel Pro
Roman Kolosov
хм а те конструкции которые он в raw пишет разве общие для всех субд? вроде ж синтаксис мускуля
В постгре точно работают. С другими субд не работал
источник

A

Andrey in Laravel Pro
В мускль тоже сработает, универсальное
источник

A

Andrey in Laravel Pro
Последнее он привёл только для пострге, с фильтрами
источник

P

Phoenix in Laravel Pro
Такие фильтра собираются как минимум 2умя запросами

1ый запрос получает count для каждого атрибута
2ой запрос получает count для каждого атрибута с учетом примененных фильтров
Потом данные мержатся и

Если не хочешь переделывать дважды сразу делай на elasticsearch
источник

Vr

Vuzopedia ru in Laravel Pro
$totals = DB::table('subscribers')
   ->selectRaw('count(*) as total')
   ->selectRaw('count(*) filter (where is_admin) as admins')
   ->selectRaw('count(*) filter (where is_treasurer) as treasurers')
   ->selectRaw('count(*) filter (where is_editor) as editors')
   ->selectRaw('count(*) filter (where is_manager) as managers')
   ->first();
источник

Vr

Vuzopedia ru in Laravel Pro
то есть это не сработает в данном случае?
источник

A

Andrey in Laravel Pro
В постргесе сработает, читай выше
источник

Vr

Vuzopedia ru in Laravel Pro
понял
источник