如何添加另一列到其他列的SELECT DISTINCT查询?
问题描述:
我有这个表如何添加另一列到其他列的SELECT DISTINCT查询?
CREATE TABLE APmeasure
(id_APmeasure INTEGER PRIMARY KEY AUTOINCREMENT
, RSSI TEXT, TimeOfMeasure DATETIME
, BSSID TEXT, id_APm INTEGER NOT NULL
, FOREIGN KEY (id_APm) REFERENCES APTable (id_Ap) ON DELETE CASCADE)
我想打一个查询这会给我的TimeOfMeasure
和BSSID
不同的结果,这样的:
SELECT DISTINCT TimeOfMeasure, BSSID
FROM APmeasure
WHERE "condition"
但是,这将取回我的其他列表,与DISTINCT查询相关。
我该怎么做?
答
- 执行不同/分组操作,
- 加入导致不同/分组操作的...
喜欢的东西:
SELECT [whichever columns you want]
FROM APmeasure
JOIN (
SELECT TimeOfMeasure, BSSID
FROM APmeasure
WHERE [condition]
GROUP BY TimeOfMeasure, BSSID
) x
ON x.TimeOfMeasure = APmeasure.TimeOfMeasure
AND x.BSSID = APmeasure.BSSID
[any other joins you need]
这在同检索BSSID的重复值TimeOfMeasure,我想DISTINCT .. – Mark 2011-06-08 01:44:17
'group by',就像'distinct'一样,完全能够产生你请求的结果。这是一个类似问题的链接(不完全相同但相似);作者尝试了几种方法并选择了上面显示的技术:http://poeticcode.wordpress.com/2008/02/20/sqlite-join-and-group-by-vs-group-by-and-join/ – bernie 2011-06-08 16:57:59