mysql - 如何优化sql select语句?

标签 mysql sql query-optimization

我的 SQL select 语句有问题。我正在尝试使用以下逻辑来获取百分比。

例如,我有两个表。一个是TableA,另一个是TableB

  • TableA 具有列 ID、A1、A2..,获取 A1 的总非重复计数为“X”。

  • 表 B 具有列 ID、B1、B2、FK_A1。获取 B2 的计数为“Y”。

  • 获取 (Y/X)*100 作为总百分比。

我能够使用子查询来做到这一点,但想使用一个简单而有效的语句。是否可以在一个 select 语句中获得以上 3 种情况?我们将非常感谢您的帮助。

Select 
     (Select count(distinct A1)  from TableA) As C1, 
     (Select count(B2) from TableB Inner Join TableA ON TableB.FK_A1=TableA.A1) 
C2) 

最佳答案

尝试这个查询

SELECT ( COUNT(B2) / COUNT(DISTINCT A1) ) * 100 AS TOTAL_PERC FROM TABLEA A INNER JOIN TABLEB B ON TABLEB.FK_A1 = TABLEA.A1;

关于mysql - 如何优化sql select语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57667856/

相关文章:

php - 如何从 Laravel belongsToMany 关系中获取行?

mysql - 优化包含 EXISTS 的 MySQL UPDATE 查询的性能

MySQL优化多连接查询

mysql - 是否有与 MySQL 的 DESCRIBE [表] 等效的 SQLite?

mysql - 使用 innodb_buffer_pool 和查询缓存

mysql - 如何取消MySQL中having子句的组效应?

sql - ORA-12801 : error signaled in parallel query server P004 and ORA-01555: snapshot too old

mysql - 在一个查询中选择多对多表

php - 是否应该在 MySQL 中使用/创建尽可能多的索引?

无法识别 MYSQL WHILE LOOP CONTINUE