Веб Зображення Новини Групи Блоги Перекладач Gmail Ще »
Групи, які ви переглядали нещодавно | Довідка | Увійти
Головна сторінка Груп Google
group c postgres
Занадто багато тем, що мають бути показані першими. Для того, щоб показати тему першою, зніміть цю опцію з іншої теми.
Під час обробки вашого запиту сталася помилка. Будь ласка, повторіть вашу спробу пізніше.
флаг
  17 повідомлення - Згорнути всі  -  Перекласти все вказаною мовою: Перекладено (переглянути всі оригінали)
Група, до якої ви додаєте допис, - група Usenet. Відтак, будь-хто в Інтернеті бачитиме вашу електронну адресу.
Вашу відповідь не було надіслано.
Ваш допис надіслано
 
Від:
Кому:
Копія:
Продолжить:
Додати копію: | Додати продовження: | Редагувати тему
Тема:
Підтвердження:
З метою підтвердження введіть символи, наведені на зображенні нижче, або числа, які чуєте, натиснувши значок доступу. Прослухайте і введіть цифри, що чуєте
 
Привет, а кого лучше пнуть, чтобы можно было нормально пользоваться
группировкой в postgres?
Он же требует перечислять в group_by все поля, перечисленные в
select.

Например named_scope :group, :group => 'productgroups.id,
productgroups.name и т.д.
хорошо, если полей несколько, а если много?
Может как-то АР сказать, что SELECT "products".* FROM мне вовсе не
надо?


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
2009/11/2 Gennady <gennady.kude...@gmail.com>:

> Например named_scope :group, :group => 'productgroups.id,
> productgroups.name и т.д.
> хорошо, если полей несколько, а если много?
> Может как-то АР сказать, что SELECT "products".* FROM мне вовсе не
> надо?

Скажи

named_scope :group, :group => 'productgroups.id', :select => 'productgroups.id'

--
Best regards, Dmytro Shteflyuk
http://kpumuk.info/, #twitter: http://twitter.com/kpumuk


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.

On 02 Nov 2009, at 18:33, Gennady wrote:

> Привет, а кого лучше пнуть, чтобы  
> можно было нормально пользоваться
> группировкой в postgres?

А это они такие правильные. Я  
собственно посгрес не люблю за это и  
тайпкасты (что вот они все такие  
академиццкие
а нам время в трубу спускать).
--
Julik Tarkhanov
m...@julik.nl

Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
On 03.11.2009, at 12:42, Julik Tarkhanov wrote:

> On 02 Nov 2009, at 18:33, Gennady wrote:

>> Привет, а кого лучше пнуть, чтобы
>> можно было нормально пользоваться
>> группировкой в postgres?

> А это они такие правильные. Я
> собственно посгрес не люблю за это и
> тайпкасты (что вот они все такие
> академиццкие
> а нам время в трубу спускать).

2Julik&Gennady: А расскажите, пожалуйста,  
какие задачи Вы пытается решить с  
помощью группировок ?

Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
убрать дублирующиеся строки. я и сделал, через:select => , но набор
полей нужен разный.

On Nov 3, 12:09 pm, Maxim Kulkin <maxim.kul...@gmail.com> wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
2009/11/3 Gennady <gennady.kude...@gmail.com>:

> убрать дублирующиеся строки. я и сделал, через:select => , но набор
> полей нужен разный.

Вообще-то group by не для убирания дублирующихся строк, а для групировки.
Может быть лучше подойдет DISTINCT ON ?

Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
полностью согласен, только я не смог догнать, как это в named_scope
написать :)

On Nov 3, 2:51 pm, Max Lapshin <max.laps...@gmail.com> wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Вообще, это неприятный момент. Попробуй в :select, но по моей практике
лучше :select указывать либо один среди всех named_scope, либо вообще
в последнем вызове в цепочке.

Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.

по личной практике - distinct on в named_scope почти всегда создает
неприятные моменты, приходится использовать через find_by_sql...

4 ноября 2009 г. 1:03 пользователь Max Lapshin <max.laps...@gmail.com>написал:

> Вообще, это неприятный момент. Попробуй в :select, но по моей практике
> лучше :select указывать либо один среди всех named_scope, либо вообще
> в последнем вызове в цепочке.

--
С уважением,
Иванов Александр

Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Чувствую, что у Вас там что-то очень  
неправильно. А точнее,  
денормализованные данные. Как я понял,  
у Вас в таблице с продуктами лежит  
информация о продуктовых группах. Вот  
вынесите группы в отдельную таблицу,  
сразу все станет легко.

On 03.11.2009, at 15:47, Gennady wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
как знать, какой named_scope окажется последний. да и скорее он в
первом scope должен быть, а не в последнем, т.к. должен быть перед
списком полей. И, кстати, не факт, что disctinct будет работать
быстрее, чем group. Full scan и там и там

On Nov 3, 8:03 pm, Max Lapshin <max.laps...@gmail.com> wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
я в свое время убедил автора searclogic для postgres писать отдельные
запросы, т.к. из-под mysql ему этих проблем видно не было :)

On Nov 3, 8:03 pm, Max Lapshin <max.laps...@gmail.com> wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
1) :select в named_scope всегда будет создавать проблемы.
2) named_scope склеивают в цепочки для организации сужающей
фильтрации. Группировка же кардинально меняет природу выдачи, поэтому
всё таки за тем, какие там идут :select, стоит следить, особенно
учитывая глюки в рельсах в этом плане.

Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
не, тут все нормально. Есть group, product c group_id. Есть еще склад,
на котором эти продукты. Было заманчиво для склода сделать named_scope
для product, которые есть на складе. Все красиво, пока на складе эти
товары из одной партии. При наличии на складе больше одной партии,
"вышестоящие" named_scope начинают выдавать лишние строки.

On Nov 3, 8:56 pm, Maxim Kulkin <maxim.kul...@gmail.com> wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
если в select указывать table_name.field_name, то imho не должно быть
проблем. по крайней мере запрос строится правильно. пока правильно :))

On Nov 3, 9:11 pm, Max Lapshin <max.laps...@gmail.com> wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Группы, партии... Код с описанием  
моделей в студию

On 03.11.2009, at 23:31, Gennady wrote:


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Gennady  
Переглянути профіль  
 Більше налаштувань 4 Лис, 09:09
class Productgroup < ActiveRecord::Base
  has_many :products, :dependent => :protect
  acts_as_lookup :name,  :default_text => "- группа -"
  named_scope :group, :select => "productgroups.id,
productgroups.name", :group => 'productgroups.id, productgroups.name'
end

class Product < ActiveRecord::Base
  belongs_to :productgroup
  has_many :stores, :dependent => :protect
  acts_as_lookup :name,  :default_text => "- выберите товар -"
  named_scope :group, :select => "products.id, products.name", :group
=> 'products.id, products.name'
end

class Store < ActiveRecord::Base
  belongs_to :product
  belongs_to :warehouse
  named_scope :avail, :conditions => "rest > 0"
end
rest - остаок, integer. В Store одновременно может быть более одного
product c rest > 0, причем у них есть другие атрибуты, которые здесь
не важны.
Идея состояла в получении списка товаров и групп товаров, которые есть
в данный момент на складе через named_scope типа
 Product.stores_avail.group, Productgroup.products_stores_avail.group
Named_scope Productgroup.products_stores_avail выдаст кучу
дублирующихся строк, массив через .uniq обрабатывается медленнее.


Ви мусите увійти перед публікацією повідомлень.
Аби надіслати допис, будь ласка, спочатку приєднайтеся до цієї групи.
Будь ласка, поновіть своє прізвисько на сторінці налаштування передплати перед тим, як надіслати свій допис.
У вас немає права надсилання дописів до цієї групи.
Кінець повідомлень
« Повернутися до обговорень « Новіша тема     Старіша тема »

Створити групу - Групи Google - Домашня сторінка Google - Правила користування послугою - Заява про конфіденційність і нерозголошення інформації
©2009 Google