BG Development


Страници: (4) « първа ... 2 3 [4]   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> SQL Monday
Gamma Goblin
Публикувано на: 22-08-2019, 06:54
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2780
Регистриран на: 21.02.18



Намерих и по-бързо PostgreSQL решение (но работи само за 1 елемент от група, докато ранк() работи за N елемента):

CODE

explain (analyse , buffers )
   select c.email, cat.name as category, D.rentals
   from (
            select distinct on (customer) customer, category, rentals
            from (
                     select r.customer_id as customer, fc.category_id as category, count(*) as rentals
                     from rental r
                              join inventory i on i.inventory_id = r.inventory_id
                              join film_category fc on fc.film_id = i.film_id

                     group by r.customer_id, fc.category_id
                 ) as X
            order by customer asc, rentals desc
        ) as D
            join customer c on c.customer_id = D.customer
            join category cat on cat.category_id = D.category
--    where c.customer_id = (select customer_id from customer where email = 'FRED.WHEAT@sakilacustomer.org')
   order by c.email asc, cat.name asc;
;


А също разбрах и как да накарам постгрето да вкара email = 'xxx' предиката във вложената заявка - трябва малко да му се подскаже:
CODE
where c.customer_id = (select customer_id from customer where email = 'FRED.WHEAT@sakilacustomer.org')
Така и не разбрах защо ако директно се филтрира по имейл не се усеща, че може да си спести доста работа

Това мнение е било редактирано от Gamma Goblin на 22-08-2019, 06:55


--------------------
https://www.rust-lang.org/
---
Хора, които са прекалено умни, за да се занимават с политика, са наказани да бъдат управлявани от глупаци.
---
Life is hard; it's harder when you're stupid.
---
Black metal is like coffee. You have to learn to drink it but when you get used to it, you just want it darker and darker
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (4) « първа ... 2 3 [4]  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0