在本文中,我们将给您介绍关于计算MySQL每天的平均销售额的详细内容,并且为您解答计算mysql每天的平均销售额怎么算的相关问题,此外,我们还将为您提供关于Linux下Mysql每天自动备份、Linu
在本文中,我们将给您介绍关于计算MySQL每天的平均销售额的详细内容,并且为您解答计算mysql每天的平均销售额怎么算的相关问题,此外,我们还将为您提供关于Linux下Mysql每天自动备份、Linux下Mysql每天自动备份的实现、mysql 中 json 数组值的平均值、mysql 查询每天的发帖量的知识。
本文目录一览:- 计算MySQL每天的平均销售额(计算mysql每天的平均销售额怎么算)
- Linux下Mysql每天自动备份
- Linux下Mysql每天自动备份的实现
- mysql 中 json 数组值的平均值
- mysql 查询每天的发帖量
计算MySQL每天的平均销售额(计算mysql每天的平均销售额怎么算)
在我的数据库中,我有一个包含两列的表。第一列包含日期,第二列是计数变量。我想知道是否有可能根据日期和计数来计算每个工作日的平均计数。在下面的一个小例子中:
桌子:
Date Count
02/01/2005 100
02/02/2005 200
02/03/2005 300
... ...
输出:
Days Average
Monday 120.5
Tuesday 200.2
Wednesday 300.5
Linux下Mysql每天自动备份
新建目录
mkdir -p /data/MysqLbal/data
mkdir -p /data/MysqLbal/scripts
mkdir -p /data/MysqLbal/logs
创建备份脚本
cd /data/MysqLbak/scripts
vi backup.sh
#!/bin/bash
#备份目录
BACKUP_ROOT=/data/MysqLbak
BACKUP_FILEDIR=$BACKUP_ROOT/data
#当前日期
DATE=$(date +%Y%m%d)
######备份######
#查询所有数据库
#-uroot -p123456表示使用root账号执行命令,且root账号的密码为:123456
DATABASES=$(MysqL -uroot -p123456 -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|MysqL")
#循环数据库进行备份
for db in $DATABASES
do
echo
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN----------
MysqLdump -uroot -p123456 --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz COMPLETE----------
echo
done
echo "done"
设置脚本的执行权限
chmod 777 backup.sh
将备份操作加入到定时任务(每天凌晨2点定时执行)
crontab -e 00 2 * * * /data/MysqLbak/scripts/backup.sh > data/MysqLbak/logs/backup.log 2>&1
创建删除脚本(定时删除7天前的备份数据)
vi backup_clean.sh
#!/bin/bash
echo ----------CLEAN BEGIN----------
find /data/MysqLbak/data -mtime +7 -name "*.gz" -exec rm -rf {} \;
echo ----------CLEAN COMPLETE----------
设置脚本的执行权限
chmod 777 backup_clean.sh
将删除操作加入到定时任务(每天凌晨1点定时执行)
00 1 * * * /data/MysqLbak/scripts/backup_clean.sh > /data/MysqLbak/logs/backup_full_clean.log 2>&1
查看定时任务
crontab -l
Linux下Mysql每天自动备份的实现
新建目录
mkdir -p /data/mysqlbak/data
mkdir -p /data/mysqlbak/scripts
mkdir -p /data/mysqlbak/logs
创建备份脚本
cd /data/mysqlbak/scripts
vi backup.sh
#!/bin/bash
#备份目录
BACKUP_ROOT=/data/mysqlbak
BACKUP_FILEDIR=$BACKUP_ROOT/data
#当前日期
DATE=$(date +%Y%m%d)
######备份######
#查询所有数据库
#-uroot -p123456表示使用root账号执行命令,且root账号的密码为:123456
DATABASES=$(mysql -uroot -p123456 -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql")
#循环数据库进行备份
for db in $DATABASES
do
echo
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN----------
mysqldump -uroot -p123456 --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz COMPLETE----------
echo
done
echo "done"
设置脚本的执行权限
chmod 777 backup.sh
将备份操作加入到定时任务(每天凌晨2点定时执行)
crontab -e
00 2 * * * /data/mysqlbak/scripts/backup.sh > data/mysqlbak/logs/backup.log 2>&1
创建删除脚本(定时删除7天前的备份数据)
vi backup_clean.sh
#!/bin/bash
echo ----------CLEAN BEGIN----------
find /data/mysqlbak/data -mtime +7 -name "*.gz" -exec rm -rf {} \;
echo ----------CLEAN COMPLETE----------
设置脚本的执行权限
chmod 777 backup_clean.sh
将删除操作加入到定时任务(每天凌晨1点定时执行)
00 1 * * * /data/mysqlbak/scripts/backup_clean.sh > /data/mysqlbak/logs/backup_full_clean.log 2>&1
查看定时任务
crontab -l
如果需要备份到另外一台机器,可以备份完scp到另外一台机器
首先服务器需要安装export,yum安装:
yum install expect
或者源码安装,参考
https://www.cnblogs.com/operationhome/p/9154055.html
脚本修改:
#!/bin/bash
#备份目录
BACKUP_ROOT=/data/mysqlbak
BACKUP_FILEDIR=$BACKUP_ROOT/data
#当前日期
DATE=$(date +%Y%m%d)
######备份######
#查询所有数据库
#-uroot -p123456表示使用root账号执行命令,且root账号的密码为:123456
DATABASES=$(mysql -uroot -p123456 -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql")
#循环数据库进行备份
for db in $DATABASES
do
echo
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN----------
mysqldump -uroot -p123456 --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz COMPLETE----------
echo ----------scp 226 begin----------
expect -c "
spawn scp -r /data/mysqlbak/data/${db}_$DATE.sql.gz root@xxx.xxx.xxx.226:/data/mysqlbak/data225/
expect {
\"*assword\" {set timeout 300; send \"此处是scp的密码\r\"; exp_continue;}
\"yes/no\" {send \"yes\r\";}
}
expect eof"
echo ----------scp 226 end----------
echo
done
echo "done"
mysql 中 json 数组值的平均值
如何解决mysql 中 json 数组值的平均值?
我有 label
- 它的字符串值数组(MysqL json
类型),例如:["foo","bar"]
,我想获得这些值的平均值,例如:
示例 1
ID | LABEL
1 | ["foo"]
2 | ["foo"]
3 | ["foo"]
4 | ["foo"]
输出:foo
:100%
示例 2
ID | LABEL
1 | ["foo"]
2 | ["foo"]
3 | ["bar"]
4 | ["bar"]
输出:foo
:50%
输出:bar
:50%
示例 3
ID | LABEL
1 | ["foo","bar"]
2 | ["foo","bar"]
输出:foo
:50%
输出:bar
:50%
我如何用单个 sql 做到这一点?
有可能吗?
我不知道应该使用哪个代码。
解决方法
首先,您需要将 JSON 数组中的项目转换为行。
您可以使用 JSON_TABLE
MySQL 函数做到这一点:
SELECT *
FROM json_table(''["foo","bar"]'',''$[*]'' COLUMNS(item text PATH ''$'')) AS jt;
结果集如下所示:
+------+
| item |
+------+
| foo |
| bar |
+------+
下一个问题是从结果集中提取这些值中的 calculate the distribution 个。
SELECT item,count(*) * 100.0 / sum(count(*)) OVER () AS percentage
FROM json_table(''["foo",''$[*]'' COLUMNS(item text PATH ''$'')) AS jt
GROUP BY item;
结果集如下所示:
+------+------------+
| item | percentage |
+------+------------+
| bar | 50.00000 |
| foo | 50.00000 |
+------+------------+
最后一步是加入表格:
SELECT item,count(*) * 100.0 / sum(count(*)) OVER () AS percentage
FROM your_table,json_table(label,''$[*]'' COLUMNS(item text PATH ''$'')) AS jt
GROUP BY item;
结果应该是你所期望的。
mysql 查询每天的发帖量
现在表有一个帖子表 有create_date int(11)类型的字段,存入的是发贴时间戳,我需要一个sql查询每天的发帖数量,有什么好的sql查询可以推荐呢?
回复内容:
现在表有一个帖子表 有create_date int(11)类型的字段,存入的是发贴时间戳,我需要一个sql查询每天的发帖数量,有什么好的sql查询可以推荐呢?
select DATE_FORMAT(FROM_UNIXTIME(create_date) as r_date,count(*) from table_name where DATE_FORMAT(FROM_UNIXTIME(create_date),"%Y-%m-%d %H:%i:%s") between "2014-11-21" and "2014-11-22" group by r_date;
今天关于计算MySQL每天的平均销售额和计算mysql每天的平均销售额怎么算的介绍到此结束,谢谢您的阅读,有关Linux下Mysql每天自动备份、Linux下Mysql每天自动备份的实现、mysql 中 json 数组值的平均值、mysql 查询每天的发帖量等更多相关知识的信息可以在本站进行查询。
本文标签: