我有一个表格,其中数据的格式如下:
CREATE TABLE TBL_COUNTING (
DF_RECORD_STATUS NVARCHAR2(255),
SOURCE_FILE_NAME NVARCHAR2(255),
APP_HCP360_COUNT NUMBER,
STAGING_COUNT NUMBER,
SUPERCEEDED NUMBER );
SUPERCEEDED upload_trxn2015831_3039.csv 0 2
TOTAL upload_trxn2015831_3039.csv 2 2 0
我想以下面的格式格式化上面的内容。但我无法这样做。
DF_RECORD_STATUS SOURCE_FILE_NAME APP_HCP360_COUNT STAGING_COUNT SUPERCEEDED
SUPERCEEDED upload_trxn2015831_3039.csv 2 0
TOTAL upload_trxn2015831_3039.csv 0 2 2
到目前为止,我能够做到以下几点:
SELECT
DF_RECORD_STATUS,
SOURCE_FILE_NAME,
STAGING_COUNT,
CASE WHEN DF_RECORD_STATUS = 'NEW'
THEN
APP_HCP360_COUNT
ELSE
0
END AS APP_HCP360_COUNT,
SUPERCEEDED
FROM TBL_COUNTING
WHERE SOURCE_FILE_NAME = 'upload_trxn2015831_3039.csv';
我一直在尝试使用DF_RECORD_STATUS列操作数据,但它没用。
答案 0 :(得分:0)
Oracle LAG和LEAD分析功能应该可以很好地完成工作。请参阅官方文档here或尝试此示例。我仍然不太清楚您的数据集,但这应该指向正确的方向:
SELECT DF_RECORD_STATUS,
SOURCE_FILE_NAME,
STAGING_COUNT
LEAD(APP_HCP360_COUNT, 1) OVER (ORDER BY APP_HCP360_COUNT) AS "RecordCount"
FROM TBL_COUNTING
WHERE SOURCE_FILE_NAME = 'upload_trxn2015831_3039.csv';