Vlad
Я Форнекс брал
Vlad
Знаю многие сисадмины какой-то vps за 24$\год берут
Evgeny
Никто сейчас на скалавее не наблюдает проблем с каналом?
Sergey
дайте группу по sql
Sergey
хотя
Sergey
хочу посчитать количество лайков
Sergey
у меня есть таблица Likes
с полями
id | photo_id | status
Sergey
статус может быть 0 и 1
Sergey
сейчас я делаю на каждую фотку 2 запроса
select count(*) where photo_id = id and status=0;
select count(*) where photo_id = id and status=1;
Sergey
хочу сделать одним запросом
Sergey
не въеду
ixplo
:D
ixplo
хочется потроллить
ixplo
но продолжай
ixplo
я бы мб вёл доп табличку с суммами
Sergey
Sergey
если чувак ткнул в дизлайк потом я хочу убрать его лайк
Sergey
я хочу знать где чей лайк
Sergey
и т.д.
ixplo
это понятно
ixplo
но я к тому. что можно доп табличку вести к примеру, чтоб на каждом запросе тяжёлый count(*) не вызывался
ixplo
и обновлять её по лайку-дизлайку
Sergey
зачем ещё одна таблица
ixplo
можно будет одним запросом запросить все лайки по статусу 0 / 1
Sergey
ixplo
и ускорение подсчёта
ixplo
photo_id / status_0_summ /status_1_summ
Sergey
у меня в фотках есть такое
Sergey
Photos
id | file | likes | dislikes
ixplo
ну да, норм. и доп табличка с конкретикой
ixplo
имхо оптимизация
Sergey
SELECT count(*) AS count FROM "Likes" AS "Like" WHERE "Like"."photo_id" = '391' AND "Like"."status" = 1;
Sergey
у меня два таких запроса
Sergey
SELECT count(*) AS "count" FROM "Likes" AS "Like" WHERE "Like"."photo_id" = '391' AND "Like"."status" = 0;
Александр
ixplo
я к тому, что если ты на лайке или дизлайке будешь в доп табличку делать +1 или -1, то каунт тебе не надо будет делать
ixplo
мб я чо не понял )
Sergey
Kons
там CASE должен быть
Sergey
как
Serhii
Select count (*) frim likes where .... group by status
Sergey
о
Sergey
Evgeny
а у тебя это основное храниилище - на sql?
Sergey
Evgeny
я б настоятельно рекомендовал хотя бы по верхам потратить вечер и прочитать ман
Sergey
Serhii
В селект добавь еше поле статус
Sergey
Kons
ну ещё в выборку статус добавить
Dmitry
Select status, count (*) frim likes where .... group by status
Evgeny
Dmitry
Если про это был вопрос конечно )
Sergey
Serhii
count(*) as cnt, status
Sergey
а распилить статус в столбцы вариант
Sergey
Александр
только у постгрес if заменить на case
Александр
https://stackoverflow.com/questions/19029842/if-then-else-statements-in-postgresql
Александр
если в одну строку надо
Sergey
чет
Anton
хочу сделать одним запросом
заведи функцию с этими двумя запросами и запрашивай ее. имхо лучше и чище, чем городить многоэтажные запросы, с первого взгляда, мало кому понятные кроме их автров
Sergey
Anton
угу
Sergey
блин
Sergey
ещё и их как-то поддерживать
Serhii
Да, иф елсе тут уместнее нежели груп бай
Serhii
Запрос простой , не понимаю зачем там хранимка
Serhii
Можно тригер сделать, еще круче будет
Sergey
я не могу разобраться
Sergey
не работает нихрена
Sergey
Sergey
чет не
Александр
зато group by проще читается, я бы на нем остановился. если не прям критично критично одной строкой получиться
Sergey
Serhii
чет не въезжаю
Вынужден идти, если че не поймешь или будет вопрос напиши в пм
Александр
http://sqlfiddle.com/#!17/aee9e/3
Sergey
Александр
не за что)