下面是我在统计过程当中学习到的一些sql的使用实践经验:
----------------------------------------------------主要使用了一些字符串函数,和表的左连接
select instr("23,2323,23,23,23,23",",")
select * from mt_sms_200804 LIMIT 10
select u.user_id,
u.username,
u.agentid,
sum( length(dest_mobile) +1 - length(replace(dest_mobile,';',''))) as channel_num,
ifnull(x.addNum,0) as add_num
from mt_sms_200804 mt
left join users u on mt.user_id=u.user_id
left join (select name,sum(total_count) addNum from
boss_addmoney
where left(add_date,7)= '2008-04' and total_count >=0 and
name not like '%=%' and name not like '%:%' group by name) x on
u.username= x.name
group by mt.user_id limit 3;
select COUNT(*) from mt_sms_200804 where user_id = NULL
-------------------------------------------------------这里使用了查询语句插入的一种语法,以前很少用到过
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[(col_name
,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name
=expr
, ... ]
使用INSERT...SELECT
,您可以快速地从一个或多个表中向一个表中插入多个行。
示例:
INSERT INTO tbl_temp2 (fld_id)
SELECT tbl_temp1.fld_order_id
FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;
-- 通道发送
select length(replace("13604903611;13609898885;13604072967",';',''))/11
select mt.user_id,
length(replace(dest_mobile,';',''))/11 channel_id
from mt_sms_200904 mt
WHERE mt.channel_id != 312 and mt.user_id = 39
group by mt.user_id
-- 卡发记录格式: displayCount:1499realSendCount:1499
select SUBSTRING_INDEX(SUBSTRING_INDEX('displayCount:149339realSendCount:123300', 'real', 1),":",-1);
select SUBSTRING_INDEX("displayCount:1499realSendCount:1411",":",-1)
select * from mt_sms_200904 where channel_id = 312 LIMIT 10
select LOCATE(',', '23,2323,23,23,23,23',1);
select "200904",
sum(SUBSTRING_INDEX(SUBSTRING_INDEX(dest_mobile, 'real', 1),":",-1)) as submit_card_num,
sum(SUBSTRING_INDEX(dest_mobile,":",-1)) as real_card_num
from mt_sms_200904 mt
left join users u on mt.user_id=u.user_id
WHERE mt.channel_id = 312
group by mt.user_id limit 10
SELECT count(*) from mt_sms_200904 where channel_id = 312
------------------------------------------------------------- 批量更新,这里是我第一次用到的批量更新,多个表之间更新数据
UPDATE crm_monthRemain cm,crm_sms_stat css SET css.last_remain = cm.R2008_03,css.this_remain = cm.R2008_04
WHERE cm.id = css.user_id and css.months = "200804";
UPDATE crm_sms_stat css left join (select name,sum(total_count) addNum from boss_addmoney
where left(add_date,7)= '2008-04' and total_count >=0 and
name not like '%=%' and name not like '%:%' group by name)
x on css.username= x.name
SET css.add_num = x.addNum
分享到:
相关推荐
达梦数据库数据量统计.sql
sql 联合查询 子查询 综合查询 统计数据 case when then 用法
主要为大家按日,星期,月,季度,年统计销售额的sql语句,需要的朋友可以参考下
2020年国家统计局地区数据sql和代码实现;包括sql及地址详细到社区;2020年国家统计最权威最全面的最全面的社区
一些注意事项:四大直辖市的二级区域名称我做了改动,比如统计局的数据是北京市-市辖区-东城区 我改成了北京市-北京市市辖区-东城区,避免数据重名,方便excel使用。还有香港,澳门,台湾这三地的数据国家统计局...
1.测试人员发现有效bug数排行。条件:时间 2.研发人员发生bug数排行。条件:时间
利用mysql的函数实现统计查询一天24小时的数据,然后统计时间没有的数据默认补上了零。
2019国家统计局省市县乡镇村5级数据树形SQL数据库_一张表 2019国家统计局省市县乡镇村5级数据树形SQL数据库_一张表 2019国家统计局省市县乡镇村5级数据树形SQL数据库_一张表 2019国家统计局省市县乡镇村5级数据树形...
统计一个数据表的表大小和行数的SQL语句,经典语句
基于SQL语句的医院临时性数据统计.pdf
禅道上的统计报表非常匮乏,专业版的水晶报表又不划算,自己动手弄了套工时统计的方案 还挺好用的 希望对大家有所帮助 附件就是统计个人名下所有需求,任务和bug的sql语句,以及Excel统计模板 操作步骤: 建议使用...
非常强大,多数据个统计 SQL select 大家可以参考一下,花了大半个小时才写完。
sql 语句 按照某年某月某周查询每位学生或员工的作业提交次数或打卡记录数据统计。 对考勤次数,提交信息考核统计很重要。
8.sql.server.2005.对数据进行统计 8.sql.server.2005.对数据进行统计
2019年国家统计局地区数据。目前来说是最新的一批国家地区数据了。包括省,市,县区,乡镇,居委和社区。其中中山市和东莞市的结构比较特别,本人发现网上很多的都没有。先自己进行爬虫抓取获取到这一批比较完整的...
国家统计局-2019最新-省市县乡镇村-数据树形结构sql,5级到村,绝不骗人,亲测有效,实用方便.
查询sql数据库每张表包含的数据条数 sql server 数据库 表 数据量
oracle的按月统计sql..............................
数据挖掘、 统计、数据分析、统计、数据库、SQL
例如,可以对一种情况执行统一的SQL查询,即一部分数据存储在ElasticSearch上,而另一部分数据存储在配置单元上。最重要的是qsql不依赖任何中间计算引擎,用户只需关注数据和统一的sql语法就可以完成统计和分析。