发布网友 发布时间:2022-04-23 04:37
共4个回答
懂视网 时间:2022-04-07 20:18
例子一:
在数据库中往往有以下的统计操作,要统计某种类型的样本有多少个,并且找出大于500个样本的类型,以及拥有的样本数目。具体例子如,在SQL中,一个表的定义如下:
CREATE TABLE t_account( account varchar(100), account_type TINYTEXT, PRIMARY KEY (account), };
account为账号,account_type为该账号的类型,写出一个sql,统计账号数累计超过5000个账号类型,并显示对应的账号数,即结果中每行是(账号类型,账号数)
select account_type, count(account) from t_account group by account_type having count(account)>5000;
例子二:(Leetcode196: Delete Duplicate Emails)
Write a SQL query to delete all duplicate email entries in a table named Person
, keeping only unique emails based on its smallest Id.
+----+------------------+ | Id | Email | +----+------------------+ | 1 | john@example.com | | 2 | bob@example.com | | 3 | john@example.com | +----+------------------+ Id is the primary key column for this table.
For example, after running your query, the above Person
table should have the following rows:
+----+------------------+ | Id | Email | +----+------------------+ | 1 | john@example.com | | 2 | bob@example.com | +----+------------------+
找到要保留的数据 然后用not in 来删除不再这些数据中的记录。大家很容易就想到如下的sql语句:
delete from Person where Id not in (select * from (select min(Id) from Person group by Email));
但是mysql删 除动作不能带有本表的查询动作,意思是你删除users表的东西不能以Person表的信息为条件 所以这个语句会报错,执行不了。只要通过创建临时表作为查询条件。具体实现如下:
delete from Person where Id not in (select * from (select min(Id) from Person group by Email) as w);
数据库常用操作整理
标签:
热心网友 时间:2022-04-07 17:26
管理数据库主要做好以下3方面的内容:热心网友 时间:2022-04-07 18:44
1.编程或者软件开发是肯定需要的,因为需要大量的实践才能发现自己的不足。软件开发方面,建议多实践一些大型的mis系统(信息管理系统),因为mis系统涉及到的数据库通常是很复杂的,知识覆盖面也是很全面的。语言方面,数据库的sql语句是肯定要精通的,开发语言随便找一个OO语言(面向对象语言)。这只是因为开发需要。参考资料:百度一下
热心网友 时间:2022-04-07 20:35
一楼挺全的了