zoukankan      html  css  js  c++  java
  • 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);
    
  • 相关阅读:
    tomcat 登录主页成功 点击Manager App 401 等问题
    servlet
    jsp 记录1 bs/cs
    java jar
    Java 第四课 对象 类
    java 第五课 异常
    Java 第三课 数组排序
    java 第二课 标识符
    java 第一课 笔记
    maven 项目问题集锦
  • 原文地址:https://www.cnblogs.com/alidata/p/13704697.html
Copyright © 2011-2022 走看看