Salve a tutti
utilizziamo come DBMS SQL Server 2008 e come dataset un database conosciuto denominato TCP-H per fare test su prog. Data Wareouse .
Questo dataset presenta una tabella di questo tipo:
CREATE TABLE LINEITEM ( L_ORDERKEY INTEGER NOT NULL,
L_PARTKEY INTEGER NOT NULL,
L_SUPPKEY INTEGER NOT NULL,
L_LINENUMBER INTEGER NOT NULL,
L_QUANTITY DECIMAL(15,2) NOT NULL,
L_EXTENDEDPRICE DECIMAL(15,2) NOT NULL,
L_DISCOUNT DECIMAL(15,2) NOT NULL,
L_TAX DECIMAL(15,2) NOT NULL,
L_RETURNFLAG CHAR(1) NOT NULL,
L_LINESTATUS CHAR(1) NOT NULL,
L_SHIPDATE DATE NOT NULL,
L_COMMITDATE DATE NOT NULL,
L_RECEIPTDATE DATE NOT NULL,
L_SHIPINSTRUCT CHAR(25) NOT NULL,
L_SHIPMODE CHAR(10) NOT NULL,
L_COMMENT VARCHAR(44) NOT NULL);
La tabella contiene circa 6 milioni di tuple, eseguendo una query del tipo:
Select AVG(L_ORDERKEY) FROM dbo.LINEITEM
Restituisce il seguente errore:
Msg 8115, Level 16, State 2, Line 1
Arithmetic overflow error converting expression to data type int.
Abbiamo provato a risolvere il problema modificando la query in:
Select Cast (AVG(L_ORDERKEY)as BigInt) FROM dbo.LINEITEM
otteniamo sempre lo stesso errore.
Sapreste darmi una spiegazione, ed eventualmente una possibile soluzione a problema???
Grazie in anticipo