小编Jam*_*mes的帖子

检索按顶级表分组的子查询 COUNT 的最有效方法?

鉴于以下架构

CREATE TABLE categories
(
    id UNIQUEIDENTIFIER PRIMARY KEY,
    name NVARCHAR(50)
);

CREATE TABLE [group]
(
    id UNIQUEIDENTIFIER PRIMARY KEY
);

CREATE TABLE logger
(
    id UNIQUEIDENTIFIER PRIMARY KEY,
    group_id UNIQUEIDENTIFIER,
    uuid CHAR(17)
);

CREATE TABLE data
(
    id UNIQUEIDENTIFIER PRIMARY KEY,
    logger_uuid CHAR(17),
    category_name NVARCHAR(50),
    recorded_on DATETIME
);
Run Code Online (Sandbox Code Playgroud)

以及以下规则

  1. 每条data记录引用一个logger和一个category
  2. 每个logger人总会有一个group
  3. 每个group可以有多个loggers
  4. 我只想统计最近记录的数据

category_name每行不是唯一的,它只是将给定数据记录关联到类别下的一种方式,id实际上只是一个代理键。

实现结果集的最佳方法是什么

category_id | logger_group_count
--------------------------------
12345          4
67890 …
Run Code Online (Sandbox Code Playgroud)

performance sql-server azure-sql-database query-performance

7
推荐指数
2
解决办法
5993
查看次数