sql - 統計每天的新客人數和老客人數


為了解決該題,先捋一下sql解題的基本兩種方法:表連接和子查詢

# 建表
CREATE DATABASE IF NOT EXISTS company;
 
USE company;
CREATE TABLE customer(
user_id VARCHAR(10) NOT NULL,
user_name VARCHAR(64) NOT NULL,
PRIMARY KEY(user_id)
);
CREATE TABLE shopping(
product_id INT(10) NOT NULL,
user_id VARCHAR(10) NOT NULL,
amout DECIMAL(12,2) NOT NULL
);
INSERT INTO customer VALUES('A','張三'),('B','李四'),('C','王五');
INSERT INTO shopping VALUES(1000000000,'A',30),(1000000001,'A',80),(1000000002,'A',10.50),
(1000000001,'B',30),(1000000004,'B',100),
(1000000005,'C',200);
# 列出購物超過一次且平均單價超過50的客戶信息
## 方法1 表連接
SELECT t2.*
FROM (SELECT user_id,AVG(`amout`) avg_amount,COUNT(*) num
FROM `shopping`
GROUP BY `user_id`)t1 INNER JOIN `customer` t2
WHERE t1.user_id=t2.user_id
AND t1.avg_amount>50 AND t1.num>1
## 方法2 子查詢
SELECT A.user_id,A.user_name
FROM customer A
WHERE A.user_id IN (SELECT B.user_id FROM shopping B GROUP BY B.user_id HAVING COUNT(B.user_id)>1 AND AVG(B.amout)>50);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM