Result Type and Attributes - Analytics Database - Teradata Vantage

SQL Functions, Expressions, and Predicates

Deployment
VantageCloud
VantageCore
Edition
Enterprise
IntelliFlex
VMware
Product
Analytics Database
Teradata Vantage
Release Number
17.20
Published
June 2022
Language
English (United States)
Last Update
2024-01-12
dita:mapPath
obm1628111499646.ditamap
dita:ditavalPath
qkf1628213546010.ditaval
dita:id
kby1472250656485
lifecycle
latest
Product Category
Teradata Vantage™

The following table lists the data type and format for the result of COUNT.

Mode Data Type and Format
ANSI MaxDecimal is general field 13 in the DBS Control utility.
If MaxDecimal in DBSControl is…
  • 0 or 15, then the result type is DECIMAL(15,0) and the format is -(15)9.
  • 18, then the result type is DECIMAL(18,0) and the format is -(18)9.
  • 38, then the result type is DECIMAL(38,0) and the format is -(38)9.
Teradata INTEGER and the format is the default format for INTEGER.
COUNT The default value for the DBSControl General Field(80), COUNT_mode, is 0. The default is compatibility mode, which disables all extensions that impact external applications.
BIGINT and NUMBER modes impact COUNT performance:
  • Type promotion may entail computing expressions using a different type if the mode is changed. This occurs when the result of the COUNT (*) based expression is materialized as a BIGINT/NUMBER type, and later used as a subexpression for computing another expression. The performance overhead is the same as that incurred when casting COUNT (*) as BIGINT/NUMBER.
  • Since the data type of COUNT (*) changes if the mode is changed, queries that made assumptions on format, title, and data type must be aware of the change.

If the result of COUNT overflows and reports an error, you can cast the result to another data type, as illustrated by the following example.

SELECT CAST(COUNT(*) AS BIGINT)
FROM BIGTABLE;

A similar example is provided for COUNT and rank window functions:

SELECT CAST(COUNT(*) over([PARTITION/ORDER BY]) AS BIGINT)
FROM BIGTABLE; 
SELECT CAST(rank over([PARTITION/ORDER BY]) AS BIGINT)
FROM BIGTABLE;
The CAST is required only for default or compatibility mode. If value of 1 or 2 is specified for NUMBER or BIGINT mode of computing COUNT, then the CAST is not required.

The following table lists the default title for the result of COUNT.

Operation Title
COUNT(x) Count(x)
COUNT(*) Count(*)

COUNT Specification in Aggregate Join Index

You can specify COUNT, COUNT cast to FLOAT OR DECIMAL(38,0), BIGINT, or NUMBER for a COUNT aggregate function in a join index. The following illustrates a SHOW JOIN INDEX that accommodates data type casts to BIGINT:

CREATE JOIN INDEX TEST.j1 ,NO FALLBACK ,CHECKSUM = DEFAULT AS
SELECT COUNT (*)(BIGINT, NAMED a ),TEST.t1.a1
FROM TEST.t1
GROUP BY TEST.t1.a1
PRIMARY INDEX ( a1 );