1

実際のクエリ:-

SELECT *,COUNT(case when ZISREAD = 0 then ZISREAD end) FROM ZNOTIFICATION WHERE ZTTL>1411025900  group by zkind,zaction,zname

こんにちは、COUNT(case when ZISREAD = 0 then ZISREAD end)コアデータを使用してカウント条件を変換する必要がありますNSExpression

 NSExpression *countPathExpression = [NSExpression expressionForKeyPath: @"isRead"];

 NSExpression *countExpression = [NSExpression expressionForFunction: @"count:"
                                                              arguments: [NSArray arrayWithObject:countPathExpression]];

    NSExpressionDescription *countExpressionDescription = [[NSExpressionDescription alloc] init];
    [countExpressionDescription setName: @"count"];
    [countExpressionDescription setExpression: countExpression];
    [countExpressionDescription setExpressionResultType: NSInteger32AttributeType];

私はみんなが変換するのを助ける必要がありCOUNT(case when ZISREAD = 0 then ZISREAD end)ますNSExpression

4

1 に答える 1

0

まず最初に、フェッチ リクエストに述語を追加できます。

fetchRequest.predicate = [NSPredicate predicateWithFormat:@"isRead = NO"];

次に、取得するプロパティで式を指定します。

fetchRequest.propertiesToFetch = @[countExpression];

結果タイプを設定することを忘れないでください

fetchRequest.resultType = NSDictionaryResultType;

それでうまくいくはずです。プロパティ全体で式を評価する場合は、propertiesToGroupBy 配列を使用することもできます。たとえば、日ごとにグループ化すると、1 日あたりのカウントを確認できます:)

ハッピーコーディング

于 2014-09-23T17:20:07.330 に答える