0 0

sqlserver GROUP BY 用法5

表:
日期          蔬菜
20110301     白菜
20110301     芹菜
20110301     香菜
20110309     萝卜
20110309      土豆


请问如何使用 GROUP BY 语句得到如下结果:
日期        蔬菜1  蔬菜2   蔬菜3
20110301    白菜  芹菜    香菜
20110309    萝卜  土豆


问题补充:

蔬菜1  蔬菜2   蔬菜3
这个的顺序不能乱,要升序排列

问题补充:表:
日期          蔬菜     类别
20110301     白菜     1
20110301     芹菜     2
20110301     香菜      3
20110309     萝卜      1
20110309      土豆    2


请问如何使用 GROUP BY 语句得到如下结果:
日期          1     2      3
20110301    白菜  芹菜    香菜
20110309    萝卜  土豆

2011年3月09日 11:18

3个答案 按时间排序 按投票排序

0 0

SELECT 日期, 
      CASE WHEN 蔬菜 = '白菜' or 蔬菜='萝卜' THEN 蔬菜 ELSE ''END AS 蔬菜1, 
      CASE WHEN 蔬菜 = '芹菜' or 蔬菜 = '土豆' THEN 蔬菜 ELSE '' END AS 蔬菜2, 
      CASE WHEN 蔬菜 = '香菜' THEN 蔬菜 ELSE 0 END AS 蔬菜3
FROM tab1
GROUP BY 日期


试试

2011年3月09日 13:51
0 0

你是不是还有其他的条件没有给出来啊,你是想算数据库中蔬菜价格(或者数量)在一天中的销售或者其他吧。给你一个算价格的参考;
表tab1:
日期          蔬菜      价格
20110301     白菜     1.0
20110301     芹菜     3.8
20110301     香菜     6.5
20110309     萝卜     2.2
20110309     土豆     2.6

SELECT 日期, CASE WHEN 蔬菜 = '白菜' THEN 价格 ELSE '' END AS 白菜, 
      SUM(CASE WHEN 蔬菜 = '芹菜' THEN 价格 ELSE 0 END) AS 芹菜, 
      SUM(CASE WHEN 蔬菜 = '萝卜' THEN 价格 ELSE 0 END) AS 萝卜, 
      SUM(CASE WHEN 蔬菜 = '土豆' THEN 价格 ELSE 0 END) AS 土豆, 
      SUM(CASE WHEN 蔬菜 = '西红柿' THEN 价格 ELSE 0 END) AS 西红柿
FROM tab1
GROUP BY 日期


2011年3月09日 13:10
0 0

你这个是行转列的问题

Sqlserver 我不熟悉,呵呵

2011年3月09日 11:28

相关推荐

    SqlServer GroupConcat

    例如,假设我们有一个`Orders`表,包含`CustomerId`和`ProductName`字段,我们可以使用`SqlServer GroupConcat`来获取每个客户的所有订单产品名,组合成一个逗号分隔的字符串: ```sql SELECT CustomerId, [Group...

    sqlserver+group by分组查询分页存储过程

    根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...

    SqlServer中Group By高级使用--Inner Join分组统计

    今天我们将深入探讨如何在SQL Server中使用Group By与Inner Join结合来实现更复杂的分组统计。 首先,理解Group By的基本用法至关重要。Group By语句将结果集按照一个或多个列进行分组,这样我们可以对每个组应用...

    SQL中GROUP BY的用法

    在 SQL SERVER 中,GROUP BY 语句经常与聚合函数一起使用,例如: select prd_no,avg(qty) from sales group by prd_no select count(prd_no) from sales select prd_no,max(qty) from sales group by prd_no ...

    SQLServer中Partition By及row_number 函数使用详解

    本文将详细讲解这两个函数的使用方法及其在实际场景中的应用。 `PARTITION BY` 关键字是分析函数的一个关键组成部分,它的主要作用是对结果集进行分组。在没有指定的情况下,`PARTITION BY` 将默认对整个结果集进行...

    SQL语句中Group BY 和Rollup以及cube用法

    ### SQL语句中Group BY 和Rollup以及Cube用法 #### Group BY 子句 `GROUP BY`子句是SQL查询中的一个非常重要的部分,它用于将数据表中的行按照一个或多个列进行分组,使得可以对每个分组执行聚合函数(如SUM、...

    总结下sqlserver group by 的用法

    在SQL Server中,`GROUP BY`语句是一个用于聚合数据的关键子句,它允许我们将数据分组,并对每个组执行聚合函数(如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`等)。在数据库查询中,当你需要根据某个或多个列的值对数据...

    SQL Server 实验指导书

    - **描述**:此实验指导书旨在帮助学生通过一系列实践操作来熟悉和掌握SQL Server 2005的基本使用方法。 - **标签**:SQL Server 实验指导书 - **部分内容**:实验手册由淮阴工学院计算机工程系教授寇海洲编写,内容...

    SQL SERVER的CTE用法

    在SQL Server中,公共表表达式(Common Table Expression,简称CTE)是一种非常有用的查询构造,它可以临时定义一个结果集,然后在这个结果集的基础上进行进一步的查询操作。CTE不仅可读性强,而且有助于简化复杂的...

    sqlserver2008视频教程

    - SELECT 语句详解:掌握 SELECT 语句的基本语法及各种子句的使用方法。 - JOIN 与子查询:理解连接查询及子查询在复杂查询中的应用。 - **高级查询技巧**: - 分组与聚合函数:利用 GROUP BY 及聚合函数进行分组...

    SQL问题详解之_having_Group by

    在SQL查询中,GROUP BY和HAVING子句是数据分析和聚合操作的核心部分,它们帮助我们对数据进行分组和过滤,以...在SQLSERVER这样的关系型数据库管理系统中,熟练掌握这两者对于优化查询性能和提升数据分析能力至关重要。

    sql server 中如何增加递增的序号列【实用】

    这种方法使用 SQL Server 2005 独有的 ROW_NUMBER() OVER () 语法来生成递增的序号列,并使用 CTE 选取序号 2 ~ 4 的数据。例如: ```sql WITH 排序后的图书 AS( SELECT ROW_NUMBER() OVER (ORDER BY 客户编号 DESC...

    microsoft sqlserver使用手册

    在SQL Server中,AVG函数可以与GROUP BY子句结合使用,对特定部门或职位的薪资进行平均计算。 3. **COUNT函数**:COUNT函数用于计算指定列的行数,或者满足特定条件的行数。它可以用来统计表中的记录总数,也可以...

    SQLServer数据库优化之50种方法

    - 使用索引来减少CPU消耗,特别是在GROUP BY等操作中。 #### 6. 数据库与应用程序服务器分离 - **概述**:将数据库服务器与应用服务器分离,可以有效避免资源竞争问题。 - **实践建议**: - 对于OLTP(联机事务...

    在SQL语言中用Group By子句实现除法.pdf

    总结来说,在SQL中使用Group By子句实现除法运算需要一些额外的技巧,比如子查询、窗口函数和case表达式。这些方法可以针对不同的数据处理需求来灵活运用。尽管在简单的分组聚合中Group By子句非常强大,但在涉及更...

    SQL Server帮助文档(全)

    这个"SQL Server帮助文档(全)"的压缩包包含了丰富的资源,旨在为用户提供全面的SQL Server使用指南,包括函数大全、关键字用法以及使用手册等内容。下面将详细阐述其中涉及的重要知识点。 1. **SQL Server函数大全*...

    sql server学习资料

    3. **查询数据**:掌握SELECT语句的使用,包括WHERE子句进行条件筛选,GROUP BY和HAVING子句进行数据分组,以及聚合函数如COUNT、SUM、AVG、MIN和MAX的运用。 4. **视图与存储过程**:学习创建和使用视图,这能简化...

    sql server 2005 技术内幕t-sql查询源码

    1. **基础查询语句**:这部分内容可能涵盖了SELECT语句的基本用法,包括选择列、表连接、聚合函数(如COUNT、SUM、AVG等)、分组(GROUP BY)和排序(ORDER BY)等。 2. **子查询与联接**:讲解如何使用子查询进行...

Global site tag (gtag.js) - Google Analytics