根据日期列查找唯一项

cidc1ykv  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(281)

我需要根据日期列找到唯一的项目。我试图将数据分组,但没有得到预期的结果。
在下面的示例中,我需要找到7月27日出现的新条目,即“new company”,因为它在7月16日不存在。我有上千行这样的行和各种各样的日期。
该表包含在操作系统datewise上看到的问题。我需要找出某家公司正在处理的新问题。请帮忙!

mysql> select * from testdata;
+------------+----------------+-----------------------+
| date       | os_ver     | account_name    | count |
+------------+----------------+-----------------------+
| 2018-07-16 | 22.345-595 | Company AA1     |     2 |
| 2018-07-16 | 22.346-596 | Company BB1     |     1 |
| 2018-07-16 | 22.346-596 | Company CC1     |     2 |
| 2018-07-27 | 22.346-595 | Company AA1     |     1 |
| 2018-07-27 | 22.346-596 | Company BB1     |     2 |
| 2018-07-27 | 22.346-596 | New Company     |     1 |
| 2018-07-27 | 22.346-596 | Company CC1     |     1 |
+------------+----------------+----------------------

我尝试了下面的,但它没有显示唯一的项目:

SELECT * FROM `testdata` group by timestamp order by timestamp DESC
jjjwad0x

jjjwad0x1#

你的问题不太清楚,但我想你需要下面的东西

select date,os_ver,account_name,count(*) from testdata
group by date,os_ver,account_name
3zwjbxry

3zwjbxry2#

你的问题不太清楚。但是,如果要查找每个帐户名首次出现的最早日期,请参见以下查询。

SELECT t.*
FROM test t
LEFT JOIN test t1 
  ON t.date > t1.date
  AND t.account_name = t1.account_name
WHERE t1.date IS NULL;

下面是一个用示例数据演示查询的sql fiddle。
或者,如果要查找只出现一次的所有帐户名,请参阅以下查询。

SELECT t.*
FROM test t
GROUP BY t.account_name
HAVING COUNT(*) = 1;

下面是一个用示例数据演示查询的sql fiddle。

相关问题