例题:数据库查询结果作为一个表

假如有两个表

表1:product (productID,productName)

表2:consume (productID,nums)  //nums表示对应的产品的销量

问题:列出每个产品ID,产品名,对应的销量

方法一:

select productID,productName,sum(nums) as nums from

(select c.productID as productID,c.nums as nums,p.productName as productName from consume as c,product as p where c.productID=p.productID)

as t group by productID,productName;

方法二:

select p.productID,p.productName,sum(c.nums)

from consume as c

join

product as p

on p.productID=c.productID

group by p.productID,p.productName;
因为查询字段中除了聚合函数外,有两个字段productID,productName,因此分组的列也需要有两个字段productID,productName

时间: 2024-10-07 06:35:03

例题:数据库查询结果作为一个表的相关文章

例题:学习数据库查询。学生信息表的创建,主外键关系,以及45道题的查询实例。主要知识点在讲页45页,和讲页65页

create database shujuku use shujuku use cangku go --注意事项:外键对本关系不一定是键 --2:创建外键时,链接表的主关键字已经确立 --3:当创建外部键后,外部键的取值必须来源于主键值 --4:要想删除主键表时,必须先删除外键表信息 create table student--学生表 ( sno varchar(50) not null primary key ,--学生主键 sname varchar(50)not null, ssex va

用python脚本导出mysql数据库查询结果到Excel表

最近需要导数据的情况太多,总用跳板机上的navicat工具有点效率低,也觉得挺麻烦的(由于跳板机无法连通外网 所以导出数据文件还得通过sftp传到本机)anyway 还是写个脚本好了.之前写过一个shell脚本做的定时导出任务,现在试试用python写下 主要用到的库有: pymysql -- 连数据库的无需多说os & sys -- 可能回涉及到工作目录或者外部传参xlwt -- 写excel 下面就是代码了,总体还是挺简单的,主要遇到个字符编码的问题,改成utf-8就解决了还有个没解决掉的问

oracle联合查询并更新一个表字段的sql语句

更新某一个字段写起来简单,也容易理解: UPDATE tablea A SET A.name=(select name from tableb B where A.id=B.id) 更新多个字段就显得比较冗长: UPDATE tablea A SET A.name=(select name from tableb B where A.id=B.id),A.age=(select age from tableb B where A.id=B.id) 如果需要更新的字段太多,这样写就太乱了,而且重复

数据库中快速备份一个表的数据,或者只备份表结构

将表结构和数据一块块备份 select * into 备份表名称 from 源表名称 只备份表结构 select * into 备份表名称 from 源表名称 where 1 < 1  (1<1 是指错误条件 查不到数据往备份表里添加自然就只备份表结构了)

数据库查询Database中的表

public class UserDA { SqlConnection conn; SqlCommand cmd; public UserDA(Use uuu) { conn =new SqlConnection( "server=" + uuu.Server + ";database=" + uuu.Database + ";user=" + uuu.User + ";pwd=" + uuu.Pwd); cmd = conn

Spring AOP + Redis缓存数据库查询

应用场景 我们希望能够将数据库查询结果缓存到Redis中,这样在第二次做同样的查询时便可以直接从redis取结果,从而减少数据库读写次数. 需要解决的问题 操作缓存的代码写在哪?必须要做到与业务逻辑代码完全分离. 如何避免脏读? 从缓存中读出的数据必须与数据库中的数据一致. 如何为一个数据库查询结果生成一个唯一的标识?即通过该标识(Redis中为Key),能唯一确定一个查询结果,同一个查询结果,一定能映射到同一个key.只有这样才能保证缓存内容的正确性 如何序列化查询结果?查询结果可能是单个实体

kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询

kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询 如果你须要实现非传统的数据库查询操作.为了讨论这样的情景,我们如果你须要读取数据库中的正則表達式,然后检查输入的每行的字段匹配表达式的个数. 在javascript步骤运行数据库查询 在javascript步骤初始化的时候,查询数据库.获取正則表達式记录集.然后每一行的输入数据循环检查是否匹配表达式,假设匹配.记录变量加一,最后把结果写到到前行的新增字段中. 思路非常清楚,可是怎样在javascript步骤实

***mysql 用一个表的一列,去更新另一表的一列

需求: 老板给了一个EXCEL数据,是本人提供的一个模板,含ID,现在相当于要导入这新增的一列数据到数据库中的某一个表. 方法一:用navicat,在excel中复制一列,再粘贴到navicat中的一列中去 方法二:用sql的方法:先建一个临时表,将数据导入,里面有ID和desc两列,再执行下面的语句 UPDATE gy_doctor a, gy_tmp b SET a.dr_desc = b.`desc` WHERE a.dr_id = b.id; 设有表t1: id name1 null2 

kettle中使用javascript步骤和fireToDB函数实现自定义数据库查询

kettle中使用javascript步骤和fireToDB函数实现自定义数据库查询 假设你需要实现非传统的数据库查询操作,为了讨论这种情景,我们假设你需要读取数据库中的正则表达式,然后检查输入的每行的字段匹配表达式的个数. 在javascript步骤执行数据库查询 在javascript步骤初始化的时候,查询数据库,获取正则表达式记录集.然后每一行的输入数据循环检查是否匹配表达式,如果匹配,记录变量加一,最后把结果写到到前行的新增字段中.思路很清楚,但是如何在javascript步骤实现数据库