暂无图片
求SQL语句
我来答
分享
Amy_liu923
2024-01-17
求SQL语句

对表上的每一个非单键且唯一索引,执行:

SQL 1:读取首字段的唯一值的个数(使用索引提示),如果该字段已经读取过,无需再次读取。


我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
shunwahⓂ️

SQL中好像是没有“索引提示”这一概念,您可能是指使用索引进行查询优化。为了实现您提出的需求,首先需要明确表的结构以及哪些字段组合形成了复合主键或唯一键。

假设我们有一个名为myTable的表,其主键是由field1和field2组合而成。为了读取每个唯一键的首字段的唯一值的个数,我们可以使用以下的SQL语句:

SELECT field1, COUNT(DISTINCT field2) as count  
FROM myTable  
GROUP BY field1;

这个查询首先按field1进行分组,然后计算每个field1值下field2的唯一值的数量。

如果您的意思是想要统计每个唯一键的唯一值的数量,并且要确保在统计过程中不会重复计算已经计算过的唯一键,那么可以使用临时表或子查询来实现。

下面是一个使用临时表的示例:

首先,创建一个临时表来存储已经计算过的唯一键:

CREATE TEMPORARY TABLE processedKeys AS  
SELECT DISTINCT field1, field2 AS processedKey  
FROM myTable;

然后,统计每个唯一键的唯一值的数量,同时确保不会重复计算:

SELECT field1, COUNT(DISTINCT field2) as count  
FROM myTable  
WHERE (field1, field2) NOT IN (SELECT processedKey FROM processedKeys)  
GROUP BY field1;

来自网络

暂无图片 评论
暂无图片 有用 1
chengang

你需要构造测试数据,与预期结果。 这样很容易让别人帮助到你

暂无图片 评论
暂无图片 有用 0
chengang

不知道是不是要达到松散扫描。 这个得看你的SQL是否符合松散扫描条件

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏