在mysql中获取相同结果的计数

时间:2016-10-26 14:08:13

标签: mysql sql

我想在mysql查询中计算所有具有相同值的结果,但无论我尝试过什么都没有给我正确的值

    +-----+---------------+
    | RoomType      | ID  |
    +=====+===============+
    | dining room   |  2  | 
    +-----+---------------+
    | sleeping room |  2  |
    +-----+---------------+
    | sleeping room |  2  | 
    +-----+---------------+

我只想得到卧室的数量。

这是我的问题:

SELECT rt.RoomType, r.property_id AS ID
FROM Rooms r
INNER JOIN RoomTypes rt ON r.type = rt.id
WHERE r.property_id = '2'

我也试过

SELECT SUM(IF(rt.RoomType = 'sleeping room', rt.RoomType, 0))
FROM Rooms r
INNER JOIN RoomTypes rt ON r.type = rt.id
WHERE r.property_id = '2'

但它没有给我我想要的结果。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我找到了答案和这样的工作方式:

SELECT SUM(rt.RoomType = 'sleeping room')
FROM Rooms r
INNER JOIN RoomTypes rt ON r.type = rt.id
WHERE r.property_id = '2'

然后它给了我正确的结果。

答案 1 :(得分:0)

假设有这样一个表:

CREATE TABLE `room_types` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `room_type` varchar(64) DEFAULT NULL,
  `room_id` int(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8'

和这样的一些数据:

  1245用餐室2

     1246浴3

     

1247餐厅2

     

1248 kitchen 5

     

104饭厅2

这应该有效:

  

从room_types中选择count(*),room_type,room_id,其中room_id = 2 by room_type;

结果:

  

3饭厅2

希望它有所帮助,

f.u。