SQL选择具有一个不同true值的两行

时间:2016-07-24 21:16:05

标签: mysql sqlite

我的问题是我有数据库以这种方式保存数据。您已发布内容的示例,但有一些类型的帖子。另一个是Weekly post,另一个是Daily post。在我的数据库中,我有专栏,告诉我它是每周或每日发布。

extension TableLayoutTests {

    func testHasMessagesGroup() {
        XCTAssert(app.tables.otherElements["MESSAGES"].exists)
    }

    func testHasMessageCell() {
        let header = app.tables.otherElements["MESSAGES"]
        let cell = app.tables.cells.elementBoundByIndex(1)
        XCTAssertGreaterThanOrEqual(cell.accessibilityFrame.minY, header.accessibilityFrame.maxY)
    }

    func testHasOtherMessageCell() {
        let header = app.tables.otherElements["MESSAGES"]
        let cell = app.tables.cells.elementBoundByIndex(2)
        XCTAssertGreaterThanOrEqual(cell.accessibilityFrame.minY, header.accessibilityFrame.maxY)
    }

}

那么我如何能够将这两行选择为一行,显示他们是否每周都有消息,每天消息该行应该如下所示

id | senderID | message | weekly | daily
1       5       "hello"     1        0
2       5      "Fun joke"   0        1

但如果发件人没有按日做消息就会显示

senderID | message | weekly | daily
   5       "hello"     1        1

1 个答案:

答案 0 :(得分:1)

试试这个:

select 
    senderid, 
    case when sum(weekly) > 0 then 1 else 0 end [weekly], 
    case when sum(daily) > 0 then 1 else 0 end [daily]
from TABLENAME
group by senderid

TABLENAME替换为实际的表名:)