I want to take a column with values that repeat multiple times and get that value only once and store it for later use, but at the same time I would like to get another value in the same row as that distinct column.
A B C
32263 123456 44
32263 123456 45
32263 123456 46
32264 246802 44
32263 246802 45
32264 246802 46
32265 369258 44
32265 369258 45
32265 369258 46
A, B, C represent three columns. Ignore C for now.
My question is: How can I get this information in this table and store it for I can use it later in the script?
Here is what I tried:
use databaseName
select distinct A from tableName
order by A
The result is:
A
32263
32264
32265
I'm trying to get it to also give me B's value. (Note it does not matter at all which row I get since no matter what A I choose the value of B will be the same for given A.) We are ignoring C for now.
The result should be:
A B
32263 123456
32264 246802
32265 369258
Now, once I get it like that I want to insert a row using the values I got from the query. This is where C comes in. I want to do something like this:
use databaseName
insert into tableName (A, B, C)
values (32263, 123456, 47)
Of course I don't want to put the values directly inside of there, instead have some type of loop that will cycle through each of the 3 distinct A values I found.
In short, my table should go from:
A B C
32263 123456 44
32263 123456 45
32263 123456 46
32264 246802 44
32263 246802 45
32264 246802 46
32265 369258 44
32265 369258 45
32265 369258 46
To:
A B C
32263 123456 44
32263 123456 45
32263 123456 46
32263 123456 47 -
32264 246802 44
32263 246802 45
32264 246802 46
32264 246802 47 -
32265 369258 44
32265 369258 45
32265 369258 46
32265 369258 47 -
I placed dashes next to the newly added rows to help you see the changes.
I figure I should perhaps do some type of loop that will cycle through all three distinct A values, but my problem is how to do that?
Thanks for your time.
You can use INSERT INTO... SELECT
statement on this,
INSERT INTO tableName (A, B, C)
SELECT A, B, MAX(C) + 1
FROM tableName
GROUP BY A, B
Try this:
SELECT * INTO new_table FROM
(SELECT DISTINCT * FROM table_name) x
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With