Need help with this sql command.
Tables:
category ( category, id_category, salary, year)
oldcategory ( year, category, salary )
How could I get the data on oldcategory and insert it into category while creating at the same time a number id for each different category on id_category
?
INSERT INTO category(category, id_category, salary, year)
SELECT DISTINCT category, () , salary, year
FROM oldcategory
WHERE category IS NOT NULL AND salary IS NOT NULL AND year IS NOT NULL
Consider a correlated count aggregate for sequential numbers by alphabetical order of category:
INSERT INTO category(category, id_category, salary, year)
SELECT DISTINCT
category,
(SELECT Count(*) FROM
(SELECT DISTINCT deepsub.category
FROM oldcategory deepsub) sub
WHERE sub.category <= oldcategory.category) AS id_category,
salary, year
FROM oldcategory
WHERE category IS NOT NULL
AND salary IS NOT NULL
AND year IS NOT NULL
INSERT INTO CATEGORY(CATEGORY, ID_CATEGORY, SALARY, YEAR)
SELECT DISTINCT A.CATEGORY,DENSE_RANK() OVER(ORDER BY A.CATEGORY) AS ID_CATEGORY,
A.SALARY,A.YEAR FROM OLDCATEGORY AS A
WHERE A.CATEGORY IS NOT NULL AND A.SALARY IS NOT NULL AND A.YEAR IS NOT NULL
ORDER BY A.YEAR
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.