DynamoDB Scan Count


If the size of the Scan result set is larger than 1 MB, ScannedCount and Count represent only a partial count of the total items. You need to perform multiple Scan operations to retrieve all the results (see Paginating the Results).

Items are first fetch and then counted, and if the size of fetched items exceed 1MB even ‘count’ will be paginated

aws dynamodb scan \
    --table-name  \
    --filter-expression "#v = :num" \
    --expression-attribute-names '{"#v": "fieldName"}' \
    --expression-attribute-values '{":num": {"N": "123"}}' \
    --select "COUNT"

will show

    "Count": 2945,
    "ScannedCount": 7874,
    "ConsumedCapacity": null

ScannedCount is total count and Count is the number of items which are filtered by given expression (fieldName=123).


Neither “Scan” (to read the entire table) nor “Query” (to read all the items with the same partition key) operations return an estimate on how many total results there are. In some cases (e.g., when a FilterExpression is provided), there is no efficient way for DynamoDB to do this estimation. In other cases there may be a way for DynamoDB to provide this information, but it doesn’t.