0

我在表中有数据,列 ID 和列日期

id  || datetime
1   || 2013-05-24 19:23:16
2   || 2013-05-28 19:24:20
3   || 2013-05-28 19:25:05  
4   || 2013-05-30 19:25:39  
5   || 2013-05-30 19:26:05  

如何查询仅显示一天计数?或一行计数。所以结果是。

    || datetime            || count
1   || 2013-05-24 19:23:16 ||  1
2   || 2013-05-28 19:24:20 ||  2
3   || 2013-05-30 19:25:39 ||  2

我在 mysql 中尝试,它可以工作,有我的查询。

SELECT id, GROUP_CONCAT( datetime ) AS date, COUNT( id ) AS count
FROM dataPetak
GROUP BY DATE( datetime )

但是当我使用 sqlite 时,结果是在一个字符串中给了我所有

5 || 2013-05-24 19:23:16,2013-05-28 19:24:20,2013-05-28 19:25:05,2013-05-30 19:25:39,2013-05-30 19:26:05 || 5

如何解决?

帮我

编辑

当我使用查询时

SELECT [datetime], [count] FROM (SELECT MAX([datetime]) 'datetime', COUN
T(*) 'count' FROM dataPetak GROUP BY CAST ([datetime] AS DATE)) t;

结果是

       2013-05-24 19:23:16 ||  1
       2013-05-28 19:24:20 ||  2
       2013-05-30 19:25:39 ||  2

如何在sqlite中使用行号?

所以结果是

1   || 2013-05-24 19:23:16 ||  1
2   || 2013-05-28 19:24:20 ||  2
3   || 2013-05-30 19:25:39 ||  2

当我尝试这个查询时,

SELECT ROW_NUMBER () OVER (ORDER BY [datetime]) No, [datetime], [count] FROM (SELECT MAX([datetime]) 'datetime', COUN
T(*) 'count' FROM dataPetak GROUP BY CAST ([datetime] AS DATE)) t;

显示错误

Error: near "(": syntax error

如何解决?

4

2 回答 2

1

您的情况不需要GROUP_CONCAT()功能。您在问题中的最后一个查询是针对 SQL Server 的。Sqlite 没有实现ROW_NUMBER().

话虽如此,试试

SELECT 
 (
   SELECT COUNT(*) 
     FROM 
   ( SELECT 1
       FROM dataPetak
      WHERE id <= t.id
      GROUP BY DATE(datetime)
   ) q
 ) No, datetime, count
  FROM 
 (
   SELECT id, MIN(datetime) datetime, COUNT(*) count
     FROM dataPetak
    GROUP BY DATE(datetime)   
 ) t

输出:

| No |            datetime | count |
------------------------------------
|  1 | 2013-05-24 19:23:16 |     1 |
|  2 | 2013-05-28 19:24:20 |     2 |
|  3 | 2013-05-30 19:25:39 |     2 |

这是SQLFiddle演示

于 2013-05-31T04:10:17.387 回答
0

试试这个查询

select date(datetime) as date,  count(*) as count from tbl 

group by date(datetime)

小提琴

|       date | count |
----------------------
| 2013-05-24 |     1 |
| 2013-05-28 |     2 |
| 2013-05-30 |     2 |
于 2013-05-31T04:03:54.390 回答