mysql - 如何优化sql select语句?
问题描述
我遇到了 SQL 选择语句的问题。我正在尝试使用以下逻辑获得百分比。
例如,我有两张桌子。一个是TableA,另一个是TableB
TableA 具有列 ID、A1、A2..,获取 A1 的总不同计数为“X”。
TableB 具有列 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;
推荐阅读
- java - 渲染和眼空间错位导致不精确的光线投射
- javascript - 如何发现现有“搜索”按钮后面的 URL / 字符串?
- javascript - 延迟将显示更改为无
- batch-file - 如何从批处理中仅签入 TFS 中的特定分支?
- java - 我收到应用程序构建错误,资源“attr/arc_position”的重复值与配置“”
- android - 如何使用 androguard 或 aapt 从 .apk 中提取过滤器意图?
- javascript - JavaScript 'myFunction' 不是一个函数,尽管它是
- flutter - 如何在不同类的迭代器 FOR 中传递变量列表?
- machine-learning - Word2Vec 本身是判别模型还是生成模型?
- apache-spark - Spark sql“创建表作为选择...”内存不足