1.查询表内的重复数据
select ID, count(1) from log
GROUP BY ID HAVING COUNT(1)>1
2.sql server 洗库操作,重复数据只保留一条
delete tt from (
select ROW_NUMBER() over(partition by id order by id desc) iid,* from log t
) tt where tt.iid>1
3.查询表中数据分组,只取最新的一条
SELECT
*
FROM
review_note a
INNER JOIN
(
SELECT resources_id ,MAX( update_time ) update_time
FROM demo
WHERE resources_id
IN (x,x,x,x)
GROUP BY resources_id
) b
ON a.update_time = b.update_time
AND a.resources_id = b.resources_id
ORDER BY a.update_time DESC
4.修改表中某一字段值为另外一个关联表的字段值
UPDATE log a
LEFT JOIN log2 b
on a.id = b.aId
SET a.name = b.name
WHERE a.id = b.aId;
5. 查询表结构
SELECT
COLUMN_NAME 列名,
COLUMN_TYPE 数据类型,
COLUMN_COMMENT 注释
FROM
INFORMATION_SCHEMA .COLUMNS
where
table_name = '表名';
6.查询表内当前时间前N天的数据量没有的用0补上
SELECT t1.day, IFNULL(tos.count, 0) as count FROM (
SELECT @cdate := DATE_ADD(@cdate, INTERVAL - 1 DAY) day
FROM (SELECT @cdate := DATE_ADD(DATE_FORMAT(SYSDATE(),'%Y-%m-%d'), INTERVAL + 1 DAY) FROM testTbale) t0
LIMIT 8
) t1
LEFT JOIN (
select DATE_FORMAT(create_time,'%Y-%m-%d') day, count(*) count from (
select * from testTbale where DATE_SUB(CURDATE(), INTERVAL 8 DAY) <= date(current_date)
) as take_order_statistics group by day
) tos
ON t1.day = tos.day
7.查询表内各分类及百分比
SELECT
model as Model,
CONCAT(CONVERT( (COUNT(1)/(SELECT COUNT(1) FROM table_name)*100), DECIMAL(10,2) ),'%') AS 'scale'
FROM
table_name
WHERE
GROUP BY
model