Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 检查客户是否多次出现在表中_Mysql - Fatal编程技术网

Mysql 检查客户是否多次出现在表中

Mysql 检查客户是否多次出现在表中,mysql,Mysql,我有一个表,每天都会随着插入时间进行更新。现在,我想检查客户是否同时出现在两次插入中,还是仅出现在其中一次插入中,并相应地进行标记 insert-time Customer customer-appereance 2019-08-17 Customer01 each-insert-time 2019-08-18 Customer01 each-insert-time 2019-08-17 Custo

我有一个表,每天都会随着插入时间进行更新。现在,我想检查客户是否同时出现在两次插入中,还是仅出现在其中一次插入中,并相应地进行标记

insert-time     Customer           customer-appereance
2019-08-17      Customer01           each-insert-time
2019-08-18      Customer01           each-insert-time
2019-08-17      Customer02           first-list
2019-08-17      Customer03           each-insert-time
2019-08-18      Customer03           each-insert-time
2019-08-17      Customer04           first-list
2019-08-18      Customer05           last-list
我的数据库如下所示:

insert-time    customer
2019-08-17     Customer01
2019-08-17     Customer02
2019-08-17     Customer03
2019-08-17     Customer04
2019-08-18     Customer01
2019-08-18     Customer03
2019-08-18     Customer05
我尝试的查询是:

SELECT insert_time, customer,
(CASE WHEN MIN(insert_time) over (PARTITION by customer) = MAX(insert_time) over (PARTITION by customer)
THEN 'first-list' ELSE 'last-list' END) AS customer-appereance
FROM customers
GROUP BY 1,2;
不知何故,它不起作用。我一直在想,我怎样才能把第三个cirtiera“每次插入”放进案例陈述中

WITH 
cte1 AS (SELECT customer, MIN(`insert-time`) mindate, MAX(`insert-time`) maxdate
         FROM customers
         GROUP BY customer),
cte2 AS (SELECT MIN(`insert-time`) mindate, MAX(`insert-time`) maxdate
         FROM customers)
SELECT customers.`insert-time`,
       customers.customer,
       CASE WHEN cte1.mindate = cte2.maxdate THEN 'last-list'
            WHEN cte2.mindate = cte1.maxdate THEN 'first-list'
            ELSE 'each-insert-time'
            END `customer-appereance`
FROM customers
JOIN cte1 USING (customer)
CROSS JOIN cte2
ORDER BY 2,1;


指定精确的MySQL版本。MySQL版本为10.3请参阅。谢谢。()
SELECT *,
       CASE WHEN MIN(`insert-time`) OVER (PARTITION BY customer) = MAX(`insert-time`) OVER ()
            THEN 'last-list'
            WHEN MAX(`insert-time`) OVER (PARTITION BY customer) = MIN(`insert-time`) OVER ()
            THEN 'first-list'
            ELSE 'each-insert-time'
            END `customer-appereance`
FROM customers
ORDER BY 2,1;