Bir deyim içinde bir sütun değerlerinin toplamını saymak

1 Cevap php

I have a table nerede bir kullanıcı gibi 3 penalities bir dizi ulaşmıştır saymak gerekir, böylece kullanıcı ulaşmak veya 3 puan aşmak, o yasakladı:

table_warnings
- id
- user_id
- warning
- warning_date

id    user_id     warning    warning_date
1     5478        1          2010-02-25 12:59:00
2     5478        1          2010-02-28 08:27:00
3     5478        2          2010-03-01 22:44:11

Ben ettik started this question, kullanıcı KM bu gibi bir SELECT bir çözüm ince bana yardımcı nerede:

SELECT COUNT(warning)
FROM table_warnings AS w
INNER JOIN table_users AS u
ON w.user_id = u.user_id
WHERE w.user_id = 5478 AND warning_date >= '2010-02-05 12:59:00'
HAVING COUNT(warning) >= 3

Ben SELECT kullanıcı son 30 gün var kaç penality puan almak için bir yol bulabilir miyim?

1 Cevap

Sütun "warn_penalty" nedir. Ben "uyarı" olarak aynı varsayıyorum miyim? Eğer öyleyse, sadece () (SUM) COUNT değiştirin. Ikinci tablo ortadan kaldırmak için bazı ek sabitleme ile:

SELECT user_id, SUM(warning)
FROM table_warnings 
WHERE  warning_date >= '2010-02-05 12:59:00'
GROUP BY user_id
HAVING SUM(warning) >= 3

yasaklandı tüm kullanıcıları dönecektir.

Alternatif olarak, bir user_id var ve yasaklı olup olmadığını bilmek istiyorsanız:

SELECT SUM(warning)
FROM table_warnings 
WHERE user_id = 5478 AND warning_date >= '2010-02-05 12:59:00'

ve sonucu kontrol edin.