阅读量大于人均阅读量的读者清单,结果显示读者姓名,读者单位
时间: 2024-03-23 18:43:10 浏览: 18
可以使用以下 SQL 查询语句来实现:
```
SELECT a.readername AS 读者姓名, a.unit AS 读者单位
FROM the_reader a
LEFT JOIN (
SELECT COUNT(bookcode) AS ss
FROM the_reader a
LEFT JOIN tb_booklend b ON a.readerid = b.readerid
GROUP BY a.readerid
) b ON a.readerid = b.readerid
WHERE b.ss > (
SELECT AVG(ss)
FROM (
SELECT COUNT(bookcode) AS ss
FROM the_reader a
LEFT JOIN tb_booklend b ON a.readerid = b.readerid
GROUP BY a.readerid
) a
);
```
这个查询语句先计算出所有读者的平均阅读量,然后再与每个读者的阅读量进行比较,找出阅读量大于人均阅读量的读者,最后将他们的姓名和单位列出来。
相关问题
阅读量大于人均阅读量的读者清单,结果显示读者姓名,读者单位用数据库语句编写
以下是一个使用MySQL的SQL代码示例,用于查询阅读量大于人均阅读量的读者清单,并输出读者姓名和单位:
```sql
SELECT reader_name, reader_unit
FROM readers
WHERE read_count > (SELECT AVG(read_count) FROM readers);
```
请注意,此代码假定你有一个名为`readers`的表,其中包含`reader_name`,`reader_unit`和`read_count`列。
阅读量大于人均阅读量的读者清单,结果显示读者姓名,读者单位MySQL8.0可以编译的代码
以下是一个使用MySQL8.0的C++代码示例,用于查询阅读量大于人均阅读量的读者清单,并输出读者姓名和单位:
```cpp
#include <mysql.h>
#include <stdio.h>
int main(int argc, char **argv)
{
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "your_password_here"; /* set me first */
char *database = "your_database_here"; /* set me first */
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
/* send SQL query */
if (mysql_query(conn, "SELECT reader_name, reader_unit FROM readers WHERE read_count > (SELECT AVG(read_count) FROM readers)")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
/* output reader name and unit */
printf("Readers with read count greater than average:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s (%s)\n", row[0], row[1]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
}
```
请注意,在运行此代码之前,请将`your_password_here`和`your_database_here`替换为你的MySQL密码和数据库名称。此代码假定你有一个名为`readers`的表,其中包含`reader_name`,`reader_unit`和`read_count`列。