MySQL查询选择唯一时间戳

时间:2012-12-03 20:09:28

标签: mysql

我有一个跟踪用户点击的数据库。如果有人点击同一件事两次,它可能会在数据库中产生具有相同时间戳的重复条目。

有没有办法将我的查询修改为仅返回具有唯一时间戳而不是重复项的结果。

$stmt1 = $dbConn1->prepare("
    SELECT count(*)
    FROM asset_lookup
    ");

2 个答案:

答案 0 :(得分:1)

我相信您正在寻找distinct关键字。阅读这个帖子,它可以帮助你。

mysql query: SELECT DISTINCT column1, GROUP BY column2

答案 1 :(得分:1)

注意:

  • product的加入与INNER加入完全等效,因为您在product.product_type_id = 2子句中使用了WHERE。除此之外,是否有必要计算product表中不存在且仅在asset表中(如果有)的产品的点击次数?

  • LEFT与[{1}}的联接与event联接完全相同,因为您在INNER子句中使用event.activation_date

  • 加入WHERE似乎完全没用。

  • tracking_product_lookup可能会使用外连接给出错误的结果。 COUNT(*)计算中间结果集中的行,外部联接在某些列中生成具有Null的行(例如,根本没有点击的产品,仍会显示计数为1)。

  • 要回答实际问题,如果您要计算不同的时间戳,请使用COUNT(*),而不是COUNT(DISTINCT column)

查询将写为:

COUNT(*)