1. 程式人生 > >sql語句查詢老師學生記錄大於1的條數

sql語句查詢老師學生記錄大於1的條數

這是teacher表結構,查詢每個老師student這個欄位存在資料庫的記錄數,過濾出大於2的記錄


1.

這個就過濾出了,存在student記錄數大於1的老師名與記錄條數

SELECT `name`,COUNT(student) FROM teacher   GROUP BY `name` HAVING COUNT(student)>1

結果



修改成2

SELECT `name`,COUNT(student) FROM teacher   GROUP BY `name` HAVING COUNT(student)>2

結果


2.

select temp.nm,temp.st FROM (SELECT `name` as nm ,COUNT(`student`) as st FROM teacher GROUP BY `name`) as temp where temp.st>1;

結果


3.這種是,查詢出每個老師存在幾條記錄,最後結果有幾條記錄,相當於把學生記錄數大於2的老師總數查詢出來了。

select count(1) from (select count(`name`) from teacher group by `name` having count(*)>=2) as t ;



4.查詢出每個老師對應的,所有學生總和

SELECT `name` ,sum(student) FROM teacher GROUP BY `name`



表結構

DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher` (
  `name` varchar(255) DEFAULT NULL,
  `class` int(10) DEFAULT NULL,
  `student` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of teacher
-- ----------------------------
INSERT INTO `teacher` VALUES ('zhangsan', '1', '2');
INSERT INTO `teacher` VALUES ('lisi', '1', '5');
INSERT INTO `teacher` VALUES ('lisi', '2', '3');
INSERT INTO `teacher` VALUES ('zhangsan', '8', '6');
INSERT INTO `teacher` VALUES ('zhangsab', '5', '1');
INSERT INTO `teacher` VALUES ('lisi', '6', '1');