-- 统计总数使用了分组
SELECT
al.value AS factors_value,
ROUND(al.pv / maxpv.total * 100, 1) AS rate
FROM
(SELECT
IF(
INSTR(factors_value, '电信'),
'电信',
IF(
INSTR(factors_value, '移动'),
'移动',
IF(
INSTR(factors_value, '联通'),
'联通',
IF(
INSTR(factors_value, '铁通'),
'铁通',
IF(
INSTR(factors_value, '长城宽带'),
'长城宽带',
factors_value
)
)
)
)
) AS VALUE,
SUM(pv) AS pv
FROM
stats_buyer
WHERE web_id = 'xxxxxxx'
AND factors_id = '0'
AND factors_value REGEXP '电信|移动|联通|铁通|长城宽带'
GROUP BY VALUE) al
INNER JOIN
(SELECT
MAX(a.pv) AS pv,
SUM(a.pv) AS total
FROM
(SELECT
IF(
INSTR(factors_value, '电信'),
'电信',
IF(
INSTR(factors_value, '移动'),
'移动',
IF(
INSTR(factors_value, '联通'),
'联通',
IF(
INSTR(factors_value, '铁通'),
'铁通',
IF(
INSTR(factors_value, '长城宽带'),
'长城宽带',
factors_value
)
)
)
)
) AS VALUE,
SUM(pv) AS pv
FROM
stats_buyer
WHERE web_id = 'xxxxxxx'
AND factors_id = '0'
AND factors_value REGEXP '电信|移动|联通|铁通|长城宽带'
GROUP BY VALUE) a) maxpv
ON al.pv = maxpv.pv
-- 统计总数使用了分组测试
SELECT INSTR(factors_value,'电信'),factors_value, SUM(pv) AS pv FROM stats_buyer
GROUP BY INSTR(factors_value,'电信')
-- 自己写的和上面写的区别
SELECT tbl_sum.factors_value,tbl_sum.pv/tbl_total.pv_total,tbl_total.pv_total,tbl_sum.pv
FROM
(
SELECT factors_value,SUM(pv) AS pv
FROM stats_buyer
WHERE web_id='xxxxx' AND factors_id='3'
GROUP BY factors_value
ORDER BY pv DESC LIMIT 1
) AS tbl_sum
LEFT JOIN
(
SELECT SUM(all_pv) AS pv_total
FROM
(
SELECT factors_value,SUM(pv) AS all_pv
FROM stats_buyer
WHERE web_id='xxxxxx' AND factors_id='3'
GROUP BY factors_value
)
AS table_total
) AS tbl_total
ON 1=1
分享到:
相关推荐
根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...
GROUP BY 是 SQL 中的一种分组查询语句,通常与聚合函数配合使用。GROUP BY 语句根据一个或多个列将查询结果分组,并对每组计算聚合函数的值。 在使用 GROUP BY 语句时,需要注意以下几点: 1. select 语句中所有...
本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...
SQL GROUP BY 语句是数据库查询中非常重要的一个部分,它允许我们对数据进行分组,以便于统计和分析。在处理大型数据集时,GROUP BY 与聚合函数(如 SUM、COUNT、AVG、MAX 和 MIN)一起使用,能够帮助我们汇总数据,...
尽管在简单的分组聚合中Group By子句非常强大,但在涉及更复杂逻辑计算的场景下,需要结合SQL的其他高级特性来完成任务。掌握这些高级用法对于进行复杂数据处理和分析至关重要,也是专业IT人员不可或缺的知识点。
在SQL Server数据库管理中,Group By语句是用于对数据进行分组并计算每个组的汇总信息的关键工具。通常,我们使用聚合函数如COUNT、SUM、AVG、MIN和MAX等与Group By一起,以便对特定列进行分析。然而,当我们需要在...
Sql 聚合函数和 group by 的关系详解 Sql 聚合函数和 group by 是 SQL 语言中两个非常重要的概念,它们之间存在紧密的联系。那么,什么是聚合函数?什么是 group by?它们之间的关系是什么?在本文中,我们将详细地...
* 分组之中的不成文规定之一:当数据重复的时候分组才有意义,因为一个人也可以一组(但无没有什么意义),如果想分组,则需要用GROUP BY不管是单字段分组还是多字段分组,一定要有一个前提,即存在了重复数据。...
在SQL中,分组查询是通过`GROUP BY`子句来实现的,它可以将数据按照一个或多个列的值进行分组,通常结合聚合函数一起使用,以便对每个分组执行计算。 1. SQL中的分组查询 在SQL中,使用`GROUP BY`语句进行分组操作...
"Lucene group by" 指的就是在 Lucene 中实现基于特定字段的分组操作,类似于 SQL 中的 GROUP BY 子句。这使得用户能够按类别聚合文档,例如,根据作者、日期或其他分类标准来查看搜索结果。 在 Lucene 中,分组...
`GROUP BY`子句是SQL查询中的一个非常重要的部分,它用于将数据表中的行按照一个或多个列进行分组,使得可以对每个分组执行聚合函数(如SUM、COUNT、AVG等)。在数据库管理中,当我们需要对某些特定字段的数据进行...
group by 就是依据by 后面的规则对数据分组,所谓的分组就是讲数据集划分成若干个’小组’,针对若干个小组做处理。 2.语法规则 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE ...
在SQL查询中,`GROUP BY`语句是一个非常重要的部分,它用于对数据进行分组,以便我们可以对每个组执行聚合函数,如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`等。这个概念在数据分析和数据库管理中至关重要,因为它允许...
在SQL中,`GROUP BY`语句用于将数据根据一个或多个列进行分类,例如在示例代码中,我们根据`A.DocNo`, `A1.Item_ItemCode`, `A2.LineNum`, `A2.ARBillLine`, `A2.Maturity`, `A2.AROCMoney_TotalMoney`和`A2....
- 在本例中,`GROUP BY` 用于按照客户(`ͻ`)、商品(`Ʒ`)、月份(`µ`)和客户(再次出现的`ͻ`)进行分组,确保每个月份的数据被正确地归纳在一起。 ### 示例详解 #### 数据表结构 假设有一个名为`...
在SQL Server 2000中,这些函数可以与GROUP BY一起使用,以在每个分组上应用这些操作: ```sql SELECT ProductCategory, AVG(SalesAmount) FROM Sales.SalesOrderDetail GROUP BY ProductCategory; ``` 这将返回...
在SQL中,实现分组小计主要依赖于`GROUP BY`子句与聚合函数(如`SUM()`, `AVG()`等)。这些功能组合起来可以对数据进行多维度的分析与汇总。 例如,为了计算每个`STOCK_ID`下按`TYPE_CD`分类的平均价格(`AVG_PRICE`...
–按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...