[學習] SQLITE 簡單設定指令

在此紀錄一些簡單好用的SQLITE設定指令,

如果想將SELECT的結果輸出至檔案:
sqlite > .mode csv
sqlite > .output abc.csv
sqlite > select * from tbl1;

刪除資料表:
sqlite > drop table “tablename”

檢視目前的設定:
sqlite > .show

檢視資料表設定:
sqlite > .schema

將讀取時的切割字元改成",":
sqlite > .separator “,";

以上。

[學習] SQLITE 如何找出重複的紀錄

在交易紀錄資料中,很容易遇到資料重複出現的問題,
在資料庫中,我們可以簡單的透過 HAVING 來找到重複的資料。

假設我們有張資料表(資料表名稱:Clicks)如下,
第一列是交易代碼(sessionid)、第二列是交易時間(time)、第三列是物品代碼(itemid)、第四列是物品類型(category):
2015-07-03_152731

當我們想找到使用者代碼重複的資料,
可以使用 select * from Clicks group by sessionid having count(sessionid) > 1;

會得到sessionid重複的紀錄,如下圖結果:
2015-07-03_153517

但在本例中,這其實是同一使用者在不同時間的紀錄,
所以我們應該要保留所有重複的紀錄,此時可以改用:
select * from Clicks where sessionid in (select sessionid from Clicks group by sessionid having (count(sessionid) > 1));

此時結果就會保留所有重複的紀錄,達到我們的目的:
2015-07-03_154314

本文主要內容修改自:
https://pvanb.wordpress.com/2012/05/04/find-and-select-duplicate-values-in-your-vector-attribute-table/