
Mikhail
13.07.2016
12:42:28
да

Кøе-ктø Геннадьевич
13.07.2016
12:42:28
http://theclassicalcomposers.com/

Mikhail
13.07.2016
12:42:31
супер!

I
13.07.2016
12:42:35
мне нравится слово «полностью»)

Google

Mikhail
13.07.2016
12:42:37
Народ нужен хелп

Кøе-ктø Геннадьевич
13.07.2016
12:42:42
nfv ctqxfc ghj,ktvs там сейчас проблемы с файл-сервером - музыка и фотки не кажут\
ой

Mikhail
13.07.2016
12:42:53
[15] pry(main)> @quests = Quest.order(widget_present: :desc).page().per(12).pluck(:id)
(1.0ms) SELECT "quests"."id" FROM "quests" ORDER BY "quests"."widget_present" DESC LIMIT 12 OFFSET 0
=> [5, 7, 887, 886, 883, 882, 881, 877, 14, 13, 381, 31]
[16] pry(main)> @quests = Quest.order(widget_present: :desc).page(2).per(12).pluck(:id)
(1.1ms) SELECT "quests"."id" FROM "quests" ORDER BY "quests"."widget_present" DESC LIMIT 12 OFFSET 12
=> [15, 888, 889, 32, 823, 382, 885, 24, 394, 37, 54, 31]

Кøе-ктø Геннадьевич
13.07.2016
12:42:56
вощим обещали починить сегодня завтра

I
13.07.2016
12:42:57
у меня тоже не кажут)

Mikhail
13.07.2016
12:43:01
посмотрите, дублирует ID
только добавляю ордер начинается дубляж

I
13.07.2016
12:44:02
интересно, а если в бд исполнишь этот запрос?)

Mikhail
13.07.2016
12:44:03
не разу не встречал
имеешь ввиду через sql

I
13.07.2016
12:44:21
да-да
rails db

Google

I
13.07.2016
12:44:26
к примеру
судя по всему - выведется то же самое

Mikhail
13.07.2016
12:47:41
questhunt_ru_development=# SELECT "quests"."id" FROM "quests" ORDER BY "quests"."widget_present" DESC LIMIT 12 OFFSET 0;
id
-----
5
7
887
886
883
882
881
877
14
13
381
31
(12 rows)
questhunt_ru_development=# SELECT "quests"."id" FROM "quests" ORDER BY "quests"."widget_present" DESC LIMIT 12 OFFSET 12;
id
-----
15
888
889
32
823
382
885
24
394
37
54
31
(12 rows)

Aldar
13.07.2016
12:47:42
у тебя ордер по widget_present, а выводишь ты id Только

Mikhail
13.07.2016
12:48:03
все равно даже запросом
да-да
в чем может быть косяк
почему дублирует

I
13.07.2016
12:48:34
а как ты эти квесты создаешь? у тебя косяк там

Aldar
13.07.2016
12:48:38
ты имеешь ввиду почему 31 остаётся?

I
13.07.2016
12:49:00
а, да выведи widget_present еще

Mikhail
13.07.2016
12:49:23
Игорь там прикол в том, что могу без виджета

Aldar
13.07.2016
12:49:28
ничего странного не вижу, если widget_present от id Никак не зависит

Mikhail
13.07.2016
12:49:38
надо попробовать order created_at
хм
@igorpavlov [5] pry(main)> @quests = Quest.order(total_rating: :desc).page().per(12).pluck(:id)
(2.5ms) SELECT "quests"."id" FROM "quests" ORDER BY "quests"."total_rating" DESC LIMIT 12 OFFSET 0
=> [2, 7, 881, 886, 883, 882, 887, 877, 14, 13, 5, 381]
[6] pry(main)> @quests = Quest.order(total_rating: :desc).page(2).per(12).pluck(:id)
(1.1ms) SELECT "quests"."id" FROM "quests" ORDER BY "quests"."total_rating" DESC LIMIT 12 OFFSET 12
=> [15, 888, 887, 32, 823, 382, 885, 24, 394, 37, 5, 54]
Смотри а если по тотал рейтингу
там инт просто
он смещает и дублирует. А если ордер по created_at то все норм

I
13.07.2016
12:52:22
попробуй в subquery

Mikhail
13.07.2016
12:52:26
t.integer "quest_ratings_count", default: 0

Google

Mikhail
13.07.2016
12:52:51
то есть любой мой филд кастомный отрезает почему то

ojab
13.07.2016
12:53:52
plot twist: id не primary key

I
13.07.2016
12:54:12
ну это слишком просто

Mikhail
13.07.2016
12:54:37
айди на месте
все праймари

I
13.07.2016
12:54:58
давай лучше Quest.where(id: 5).pluck(:id, :created_at)

Eugene
13.07.2016
12:55:28
эт мне сказали, ребята переписывают скрипты в чистых sql, когда много кода для обращения к базе, они его преобразуют в один скрипт, чтобы он быстро работал
так ли это?
больше смысла нету?

ojab
13.07.2016
12:55:50
wtf один скрипт?


Mikhail
13.07.2016
12:55:52
[2] pry(main)> @quests = Quest.order(total_rating: :desc).page().per(12).pluck(:id, :created_at)
(1.1ms) SELECT "quests"."id", "quests"."created_at" FROM "quests" ORDER BY "quests"."total_rating" DESC LIMIT 12 OFFSET 0
=> [[2, Wed, 29 Jun 2016 17:46:01 MSK +03:00],
[7, Wed, 29 Jun 2016 17:46:03 MSK +03:00],
[881, Fri, 08 Jul 2016 16:55:16 MSK +03:00],
[886, Sun, 10 Jul 2016 15:28:43 MSK +03:00],
[883, Sat, 09 Jul 2016 16:49:38 MSK +03:00],
[882, Sat, 09 Jul 2016 16:47:47 MSK +03:00],
[887, Sun, 10 Jul 2016 15:34:10 MSK +03:00],
[877, Fri, 08 Jul 2016 16:48:24 MSK +03:00],
[14, Wed, 29 Jun 2016 17:46:05 MSK +03:00],
[13, Wed, 29 Jun 2016 17:46:05 MSK +03:00],
[5, Wed, 29 Jun 2016 17:46:02 MSK +03:00],
[381, Wed, 29 Jun 2016 17:48:47 MSK +03:00]]
[3] pry(main)> @quests = Quest.order(total_rating: :desc).page(2).per(12).pluck(:id, :created_at)
(1.0ms) SELECT "quests"."id", "quests"."created_at" FROM "quests" ORDER BY "quests"."total_rating" DESC LIMIT 12 OFFSET 12
=> [[15, Wed, 29 Jun 2016 17:46:06 MSK +03:00],
[888, Sun, 10 Jul 2016 15:41:33 MSK +03:00],
[887, Sun, 10 Jul 2016 15:34:10 MSK +03:00],
[32, Wed, 29 Jun 2016 17:46:11 MSK +03:00],
[823, Wed, 29 Jun 2016 17:51:41 MSK +03:00],
[382, Wed, 29 Jun 2016 17:48:48 MSK +03:00],
[885, Sat, 09 Jul 2016 16:53:27 MSK +03:00],
[24, Wed, 29 Jun 2016 17:46:08 MSK +03:00],
[394, Wed, 29 Jun 2016 17:48:52 MSK +03:00],
[37, Wed, 29 Jun 2016 17:46:13 MSK +03:00],
[5, Wed, 29 Jun 2016 17:46:02 MSK +03:00],
[54, Wed, 29 Jun 2016 17:46:19 MSK +03:00]]
вон 5й продублировал


Eugene
13.07.2016
12:56:29
"а ребята много запросов превращают в 1 большую sqlину которая быстро выполняется"

I
13.07.2016
12:56:31
да, прикольно

v
13.07.2016
12:57:30

I
13.07.2016
12:57:31
особенно, когда нужны sum, coalesce и преобразования

Mikhail
13.07.2016
12:57:45
короче куда копать не подскажите
это не сложный запрос
почему он цепляет дублем 1-2 записи обычно

Google

I
13.07.2016
12:58:40
давай лучше Quest.where(id: 5).pluck(:id, :created_at)
выполни это)

Aldar
13.07.2016
12:58:53

Mikhail
13.07.2016
12:58:54
[4] pry(main)> Quest.where(id: 5).pluck(:id, :created_at)
(0.4ms) SELECT "quests"."id", "quests"."created_at" FROM "quests" WHERE "quests"."id" = $1 [["id", 5]]
=> [[5, Wed, 29 Jun 2016 17:46:02 MSK +03:00]]
=)

I
13.07.2016
12:59:16
хм!

Mikhail
13.07.2016
12:59:20
айди та праймари
он не может продублироваться

ojab
13.07.2016
12:59:36

Admin
ERROR: S client not available

Mikhail
13.07.2016
12:59:43
нет

I
13.07.2016
12:59:45
Quest.order(total_rating: :desc).page(2).per(12).pluck(:id, :created_at, :total_rating)
давай так попробуем)

Mikhail
13.07.2016
12:59:53
значения не уникальные

ojab
13.07.2016
12:59:56
ну вот
pg не гарантирует стабильность сортировки

I
13.07.2016
13:00:07
и еще Quest.order(total_rating: :desc).page().per(12).pluck(:id, :created_at, :total_rating)

Mikhail
13.07.2016
13:00:36
[6] pry(main)> Quest.order(total_rating: :desc).page(0).per(12).pluck(:id, :created_at, :total_rating)
(1.1ms) SELECT "quests"."id", "quests"."created_at", "quests"."total_rating" FROM "quests" ORDER BY "quests"."total_rating" DESC LIMIT 12 OFFSET 0
=> [[2, Wed, 29 Jun 2016 17:46:01 MSK +03:00, 1.5],
[7, Wed, 29 Jun 2016 17:46:03 MSK +03:00, 0.0],
[881, Fri, 08 Jul 2016 16:55:16 MSK +03:00, 0.0],
[886, Sun, 10 Jul 2016 15:28:43 MSK +03:00, 0.0],
[883, Sat, 09 Jul 2016 16:49:38 MSK +03:00, 0.0],
[882, Sat, 09 Jul 2016 16:47:47 MSK +03:00, 0.0],
[887, Sun, 10 Jul 2016 15:34:10 MSK +03:00, 0.0],
[877, Fri, 08 Jul 2016 16:48:24 MSK +03:00, 0.0],
[14, Wed, 29 Jun 2016 17:46:05 MSK +03:00, 0.0],
[13, Wed, 29 Jun 2016 17:46:05 MSK +03:00, 0.0],
[5, Wed, 29 Jun 2016 17:46:02 MSK +03:00, 0.0],
[381, Wed, 29 Jun 2016 17:48:47 MSK +03:00, 0.0]]

I
13.07.2016
13:00:56
а, ну все тогда)
добавь еще сортировку по id

Google

Mikhail
13.07.2016
13:01:12
че делать
по айди
в начале

I
13.07.2016
13:01:25
не, после

Mikhail
13.07.2016
13:01:31
ща

ojab
13.07.2016
13:01:38
да пофиг когда, на самом деле


Mikhail
13.07.2016
13:02:15
[7] pry(main)> Quest.order(id: :desc, total_rating: :desc).page(0).per(12).pluck(:id, :created_at, :total_rating)
(1.2ms) SELECT "quests"."id", "quests"."created_at", "quests"."total_rating" FROM "quests" ORDER BY "quests"."id" DESC, "quests"."total_rating" DESC LIMIT 12 OFFSET 0
=> [[889, Sun, 10 Jul 2016 15:43:12 MSK +03:00, 0.0],
[888, Sun, 10 Jul 2016 15:41:33 MSK +03:00, 0.0],
[887, Sun, 10 Jul 2016 15:34:10 MSK +03:00, 0.0],
[886, Sun, 10 Jul 2016 15:28:43 MSK +03:00, 0.0],
[885, Sat, 09 Jul 2016 16:53:27 MSK +03:00, 0.0],
[884, Sat, 09 Jul 2016 16:52:32 MSK +03:00, 0.0],
[883, Sat, 09 Jul 2016 16:49:38 MSK +03:00, 0.0],
[882, Sat, 09 Jul 2016 16:47:47 MSK +03:00, 0.0],
[881, Fri, 08 Jul 2016 16:55:16 MSK +03:00, 0.0],
[877, Fri, 08 Jul 2016 16:48:24 MSK +03:00, 0.0],
[876, Wed, 29 Jun 2016 17:52:05 MSK +03:00, 0.0],
[875, Wed, 29 Jun 2016 17:52:05 MSK +03:00, 0.0]]
[8] pry(main)> Quest.order(id: :desc, total_rating: :desc).page(2).per(12).pluck(:id, :created_at, :total_rating)
(1.0ms) SELECT "quests"."id", "quests"."created_at", "quests"."total_rating" FROM "quests" ORDER BY "quests"."id" DESC, "quests"."total_rating" DESC LIMIT 12 OFFSET 12
=> [[874, Wed, 29 Jun 2016 17:52:04 MSK +03:00, 0.0],
[873, Wed, 29 Jun 2016 17:52:04 MSK +03:00, 0.0],
[872, Wed, 29 Jun 2016 17:52:04 MSK +03:00, 0.0],
[871, Wed, 29 Jun 2016 17:52:03 MSK +03:00, 0.0],
[870, Wed, 29 Jun 2016 17:52:03 MSK +03:00, 0.0],
[869, Wed, 29 Jun 2016 17:52:02 MSK +03:00, 0.0],
[868, Wed, 29 Jun 2016 17:52:02 MSK +03:00, 0.0],
[867, Wed, 29 Jun 2016 17:52:02 MSK +03:00, 0.0],
[866, Wed, 29 Jun 2016 17:52:01 MSK +03:00, 0.0],
[865, Wed, 29 Jun 2016 17:52:01 MSK +03:00, 0.0],
[864, Wed, 29 Jun 2016 17:52:00 MSK +03:00, 0.0],
[863, Wed, 29 Jun 2016 17:52:00 MSK +03:00, 0.0]]
хм
первый раз встретил такое
давай яды
=)
ща проверю
на пивко скину


Кøе-ктø Геннадьевич
13.07.2016
13:03:26
телеграм шалит. я ссылку 1 раз скинул, а она в трех местах появилась
в двух


Mikhail
13.07.2016
13:04:03
=> [2, 2, 2, 1, 92, 92, 92, 92, 254, 253, 252, 251, 250, 249, 248, 247, 246]
[4] pry(main)> @quests = @city.quests.active.order(widget_present: :desc).order_by_total_rating_desc.order(quest_ratings_count: :desc).order(id: :desc).includes(:comment_threads, :categories).page(2).per(12).pluck(:id)
SQL (2.2ms) SELECT DISTINCT "quests"."id", "quests"."widget_present" AS alias_0, "quests"."total_rating" AS alias_1, "quests"."quest_ratings_count" AS alias_2, "quests"."id" AS alias_3 FROM "quests" LEFT OUTER JOIN "comments" ON "comments"."commentable_id" = "quests"."id" AND "comments"."commentable_type" = $1 LEFT OUTER JOIN "category_quests" ON "category_quests"."quest_id" = "quests"."id" LEFT OUTER JOIN "categories" ON "categories"."id" = "category_quests"."category_id" WHERE "quests"."city_id" = $2 AND "quests"."status" = $3 ORDER BY "quests"."widget_present" DESC, "quests"."total_rating" DESC, "quests"."quest_ratings_count" DESC, "quests"."id" DESC LIMIT 12 OFFSET 12 [["commentable_type", "Quest"], ["city_id", 596], ["status", 1]]
(1.0ms) SELECT "quests"."id" FROM "quests" LEFT OUTER JOIN "comments" ON "comments"."commentable_id" = "quests"."id" AND "comments"."commentable_type" = $1 LEFT OUTER JOIN "category_quests" ON "category_quests"."quest_id" = "quests"."id" LEFT OUTER JOIN "categories" ON "categories"."id" = "category_quests"."category_id" WHERE "quests"."city_id" = $2 AND "quests"."status" = $3 AND "quests"."id" IN (245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234) ORDER BY "quests"."widget_present" DESC, "quests"."total_rating" DESC, "quests"."quest_ratings_count" DESC, "quests"."id" DESC [["commentable_type", "Quest"], ["city_id", 596], ["status", 1]]
=> [245, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234]
ништяк
завел
чето даже не подумал что надо уник тащить.
спасибо
давай яды или че есть