SQL AVG (КОЛИЧЕСТВО (*))?

Предполагая, что у вас есть где-то в вашей DOM, <button> с классом arrow и число <input> с идентификатором qty.

Я хочу уважать вашу return this.value== curr_qty строку, поэтому я добавил value атрибутов для ваших .qtyButton элементов.

 <button class="arrow" type="button">.arrow</button>
 <input type="number" id="qty" value="1">

 <br />

 <button class="qtyButton" value="1" >1</button> 
 <button class="qtyButton" value="2" >2</button>
 <button class="qtyButton" value="3" >3</button>
$(document).on('click','.arrow',function(e) {
    $('.qtyButton').css('color', '');

    var curr_qty = $('#qty').val();
    var text = $('.qtyButton').filter(function () {
        return this.value == curr_qty;
    }).css('color', 'blue');
});

Я добавил сброс цвета всех элементов перед вашей логикой.

6
задан 29 April 2009 в 00:36
поделиться

3 ответа

Это должно работать в Oracle:

create view dvd_count_view
select dvdid, count(1) as howmanytimes
  from loans
 group by dvdid;

select avg(howmanytimes) from dvd_count_view;
3
ответ дан 16 December 2019 в 21:46
поделиться

Untested...

with 
loan_copy_total as 
(
    select dvdid, copyid, count(*) as cnt
    from loan
    group by dvdid, copyid
),
loan_copy_avg as
(
    select dvdid, avg(cnt) as copy_avg
    from loan_copy_total
    group by dvdid
)

select lct.*, lca.copy_avg
from loan_copy_avg lca
inner join loan_copy_total lct on lca.dvdid = lct.dvdid
    and lct.cnt <= lca.copy_avg; 
2
ответ дан 16 December 2019 в 21:46
поделиться

Аналогично решению dotjoe, но с использованием аналитической функции, чтобы избежать дополнительного объединения. Может быть более или менее эффективным.

with 
loan_copy_total as 
(
    select dvdid, copyid, count(*) as cnt
    from loan
    group by dvdid, copyid
),
loan_copy_avg as
(
    select dvdid, copyid, cnt, avg(cnt) over (partition by dvdid) as copy_avg
    from loan_copy_total
)

select *
from loan_copy_avg lca
where cnt <= copy_avg;
3
ответ дан 16 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: