我有一个包含产品 ID、类别 ID 和产品状态的表格。
+---------+-------------+-------------+
| id | cat_id | status |
+---------+-------------+-------------+
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 3 | 2 | 1 |
| 4 | 2 | 0 |
| 5 | 1 | 0 |
| 6 | 2 | 0 |
+---------+-------------+-------------+
Run Code Online (Sandbox Code Playgroud)
如何根据其状态进行分组,然后根据其类别 ID 计算其产品和总数?我期待这样:
+---------+-------------+-------------+-----------+
| cat_id | published | unpublished | totals |
+---------+-------------+-------------+-----------+
| 1 | 2 | 1 | 3 |
| …Run Code Online (Sandbox Code Playgroud) 如何在单个语句中获得具有不同条件的DISTINCT行,如果计数为零,则结果为零?COUNTSELECT
我尝试了以下查询:
SELECT DISTINCT
A.DeviceFilter,
(SELECT count(*) FROM DeviceLicense AS B WHERE A.DeviceFilter = B.DeviceFilter AND b.OrganizationId = 1001)
FROM
DeviceLicense AS A
GROUP BY
A.DeviceFilter
Run Code Online (Sandbox Code Playgroud)
我有一个查询,我想在其中检索不同的Child行,但按Parent. 如果我执行以下操作,则会收到错误消息,因为 中指定的列ORDER BY未包含在DISTINCT列表中:
SELECT
DISTINCT c.foo, c.bar
FROM Parent p
JOIN Child c on c.parentId = p.id
ORDER BY p.createdDate
Run Code Online (Sandbox Code Playgroud)
但是,如果我添加p.createdDate到选择列表中,我将失去Child行的独特性,因为p.createdDate它们都不同。
如果我使用 CTE 或子查询首先进行排序,然后从中选择不同的行,则外部查询不保证它将保持内部/cte 查询的顺序。
有没有办法实现这一目标?
我正在尝试查询 125GB Postgres 数据库中的几个表。我发现很难快速返回结果!
即使找到一列的唯一行也需要 10 多分钟。我使用命令行或 PHPMyAdmin 之类的工具来触发查询,等待时间保持不变。
例如:
SELECT COUNT (DISTINCT column_name) FROM table_name;
Run Code Online (Sandbox Code Playgroud)
我担心如果在这些表上使用连接操作,这个等待时间会显着增加并且会更加痛苦。
任何人都可以提出什么可能是快速恢复统计数据的可能解决方案?
postgresql performance count distinct postgresql-performance
distinct ×4
count ×3
sql-server ×2
mysql ×1
order-by ×1
performance ×1
postgresql ×1
select ×1
t-sql ×1