2012-02-10 7 views
14

aşağıdaki yapıya sahip bir tablo var:Günlük kayıt sayısı nasıl sayılır?

CustID --- DateAdded --- 

396  2012-02-09 
396  2012-02-09 
396  2012-02-08 
396  2012-02-07 
396  2012-02-07 
396  2012-02-07 
396  2012-02-06 
396  2012-02-06 
isterim

SQL'de son 7 gün süreyle günde kayıtların sayısını saymak ve sonra bir tamsayı olarak bu dönebilirsiniz bilmek .

Halen şu SQL sorgusu yazdım:

SELECT * 
    FROM Responses 
WHERE DateAdded >= dateadd(day, datediff(day, 0, GetDate()) - 7, 0) 

RETURN 

Ancak bu sadece döner geçtiğimiz 7 gün boyunca tüm girişler. Son 7 gün boyunca günlük kayıtları nasıl sayabilirim?

+0

GROUP BY DateAdded. MSSQL mi? –

+0

@BrunoCosta Evet SQLServer üzerinde MSSQL – HGomez90

cevap

20
select DateAdded, count(CustID) 
from Responses 
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0) 
GROUP BY DateAdded 
+1

Teşekkürler. Daha dolaysız cevaplar bu yüzden kabul edildi. – HGomez90

5
select DateAdded, count(CustID) 
from tbl 
group by DateAdded 

yaklaşık 7-günler aralık o Bu, her dateadded değeri için size kayıtlarının sayısının verecektir soru

+0

Bu da çalışır. Teşekkürler – HGomez90

+1

@Rupert Kullanmanız gereken budur. Sorguyu otomatik olarak yürütmek için bir komut dosyası dili kullanıyorsanız, karşılaştırılabilir tarihler oluşturmak için SQL'in 'TO_CHAR' işlevini kullanabilirsiniz (bu özellikle zaman damgası alanları söz konusu olduğunda geçerlidir). – Edwin

0
SELECT count(*), dateadded FROM Responses 
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0) 
group by dateadded 

RETURN 

DB-bağlı bulunuyor. Seçime daha fazla sütun ekleme hatasını yapma, günde yalnızca bir sayı elde etmeyi beklemeyin. Maddeye göre grup, listelenen sütunların her benzersiz örneği için size bir satır verecektir.

0
select DateAdded, count(DateAdded) as num_records 
from your_table 
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0) 
group by DateAdded 
order by DateAdded 
3
SELECT DateAdded, COUNT(1) AS NUMBERADDBYDAY 
FROM Responses 
WHERE DateAdded >= dateadd(day,datediff(day,0,GetDate())- 7,0) 
GROUP BY DateAdded 
0

ayrıca bu deneyebilirsiniz:

FROM tablo miktarı OLARAK DISTINCT (TARİH (dateadded)) OLARAK unique_date, COUNT (*) SEÇ GRUBU TARAFINDAN unique_date ORDER BY unique_date ASC