Ho una tabella con due campi: datetime
e int
. Voglio fare un gruppo con il datetime
solo sulla data ignorando l'ora e il minuto. L'istruzione SELECT
dovrebbe restituire una data che si associa alla somma dell'int di un singolo giorno.SQL Server GROUP BY data/ora ignorano le ore e una selezione con una data e un valore di somma
risposta
SELECT CAST(Datetimefield AS DATE) as DateField, SUM(intfield) as SumField
FROM MyTable
GROUP BY CAST(Datetimefield AS DATE)
Questo funzionerà solo in SQL Server 2008+ (quando è stato introdotto il tipo di dati Data). Se sei nel 2005 o prima, la modifica del cast da convertire (convert (int, Datetimefield), datetime) dovrebbe funzionare. –
Viene visualizzato un errore che indica che "Tipo Data non è un tipo di sistema definito". – Steven
@Steven - poi guarda il commento di Derek. Ecco perché è una buona idea includere la tua ** VERSION ** nella domanda. – JNK
Come egli non ha specificato quale versione di SQL Server che utilizza (date
tipo non è disponibile nel 2005), si potrebbe anche usare
SELECT CONVERT(VARCHAR(10),date_column,112),SUM(num_col) AS summed
FROM table_name
GROUP BY CONVERT(VARCHAR(10),date_column,112)
- Mi piace questo in quanto i dati tipo e il formato rimane coerente con un tipo di dati di data e ora
;with cte as(
select
cast(utcdate as date) UtcDay, DATEPART(hour, utcdate) UtcHour, count(*) as Counts
from dbo.mytable cd
where utcdate between '2014-01-14' and '2014-01-15'
group by
cast(utcdate as date), DATEPART(hour, utcdate)
)
select dateadd(hour, utchour, cast(utcday as datetime)) as UTCDateHour, Counts
from cte
sono venuto alla ricerca delle opzioni che avrei dovuto fare questo, però, credo che il metodo che uso è il più semplice:
SELECT COUNT(*),
DATEADD(dd, DATEDIFF(dd, 0, date_field),0) as dtgroup
FROM TABLE
GROUP BY DATEADD(dd, DATEDIFF(dd, 0, date_field),0)
ORDER BY dtgroup ASC;
Questo funzionerà in qualsiasi versione di SQL Server ed è più veloce rispetto all'utilizzo di conversioni varchar. –
- 1. Linq GROUP BY e somma i problemi
- 2. rotaie 3 GROUP BY e somma
- 3. SQL Server: Differenza tra PARTITION BY e GROUP BY
- 4. Come SELEZIONARE una somma di più righe GROUP BY?
- 5. SQL Server: a due livelli GROUP BY con output XML
- 6. Group By, Somma in LINQ
- 7. Rails ActiveRecord Perform Group, Somma e Conte in una query
- 8. Mysql UNION e GROUP BY
- 9. CakePHP e GROUP BY
- 10. SQL: Utilizzo di GROUP BY e MAX su più colonne
- 11. SQL Server GROUP BY COUNT Solo righe consecutive
- 12. MySql GROUP BY e somma il valore totale di altra colonna
- 13. GROUP BY MAX dover data
- 14. Utilizzando GROUP BY e ORDER BY in una query SQL INNER JOIN
- 15. Usa percentile_cont con una statistica "group by" in T-SQL
- 16. funzione GAL e GROUP BY
- 17. Query SQL con count e group by in Symfony2 QueryBuilder
- 18. Utilizzando ORDER BY e GROUP BY insieme
- 19. PostgreSQL MAX e GROUP BY
- 20. Selezione SUM di TOP 2 valori all'interno di una tabella con GROUP multiplo in SQL
- 21. SQL GROUP BY con "valori predefiniti"
- 22. MySQL COUNT(), SUM() e GROUP BY
- 23. SQL Server: data massima e join interno
- 24. PostgreSQL - "ON DISTINCT" e "GROUP BY" sintassi
- 25. Come ordinare per data in Sql Server GROUP BY data formattata?
- 26. Limitazioni di GROUP BY
- 27. query LINQ utilizzando GROUP BY e avendo
- 28. SQL Server Selezione di record con più tempo data recente
- 29. MySQL - utilizzando GROUP BY e DESC
- 30. postgresql group by e inner join
accettare una delle risposte sarebbe bello (* solo il richiedente può farlo *) –