[英]group_concat and how to use row number in sqlite
我在表,列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
如何解決?
在您的情況下,不需要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演示
試試這個查詢
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 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.