繁体   English   中英

如何找到具有总行数的不同值?

[英]How to find the distinct values with total number of rows?

我想要一个查询的结果。

目前,我正在使用 2 个查询。 第一个用于不同的行,第二个用于计数行。 为第一个查询的每一行触发第二个查询。 这对服务器不利。

我在单个查询中尝试过,但它显示错误的每一行计数为 1。 我不知道如何在单个查询中做到这一点。

请帮忙!

2 查询:

SELECT DISTINCT `_car_make`.`id` as `make_id`, `_car_make`.`title`
FROM `_motor`, `_car_make`
WHERE `_motor`.`make` = `_car_make`.`id`
AND `domain` = 'domain.com' AND `active` = 'y' AND `_motor`.`status` != 'SOLD'
GROUP BY `_motor`.`id` ORDER BY `_car_make`.`title`

SELECT COUNT(DISTINCT `id`) AS `TOTAL_MAKE` FROM `_motor` 
WHERE `_motor`.`make` = '$make_id' 
AND `domain` = 'domain.com'  AND `_motor`.`status` != 'SOLD' AND `active` = 'y'

我在 1 个查询中尝试过,它显示计数为 1,这是错误的:

SELECT DISTINCT `_car_make`.`id` as `make_id`, `_car_make`.`title`, count(`_motor`.`id`) AS TotalMake
FROM `_motor`, `_car_make`
WHERE `_motor`.`make` = `_car_make`.`id`
AND `domain` = 'domain.com' AND `active` = 'y' AND `_motor`.`status` != 'SOLD'
GROUP BY `_motor`.`id` ORDER BY `_car_make`.`title`

你可以试试下面——

SELECT `_car_make`.`id` as `make_id`, `_car_make`.`title`, count(*) AS TotalMake
FROM `_motor` inner join `_car_make`
on `_motor`.`make` = `_car_make`.`id`
AND `domain` = 'coxheathcarcentre.co.uk' 
where `active` = 'y' AND `_motor`.`status` != 'SOLD'
GROUP BY `_car_make`.`id`,`_car_make`.`title`
ORDER BY `_car_make`.`title`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM