44 lines
1.1 KiB
SQL
44 lines
1.1 KiB
SQL
-- Script to fix NULL user_name values in activities table
|
|
-- This will populate user_name from the users table based on user_id
|
|
|
|
-- First, let's see how many records have NULL user_name
|
|
SELECT COUNT(*) as null_username_count
|
|
FROM activities
|
|
WHERE user_name IS NULL AND user_id IS NOT NULL;
|
|
|
|
-- Update activities with user names from users table
|
|
UPDATE activities a
|
|
SET user_name = u.display_name
|
|
FROM users u
|
|
WHERE a.user_id = u.user_id
|
|
AND a.user_name IS NULL
|
|
AND u.display_name IS NOT NULL;
|
|
|
|
-- For users without display_name, use email
|
|
UPDATE activities a
|
|
SET user_name = u.email
|
|
FROM users u
|
|
WHERE a.user_id = u.user_id
|
|
AND a.user_name IS NULL
|
|
AND u.email IS NOT NULL;
|
|
|
|
-- Verify the update
|
|
SELECT
|
|
COUNT(*) as total_activities,
|
|
COUNT(CASE WHEN user_name IS NULL THEN 1 END) as null_usernames,
|
|
COUNT(CASE WHEN user_name IS NOT NULL THEN 1 END) as populated_usernames
|
|
FROM activities;
|
|
|
|
-- Show sample of fixed records
|
|
SELECT
|
|
activity_id,
|
|
user_id,
|
|
user_name,
|
|
activity_type,
|
|
activity_description,
|
|
created_at
|
|
FROM activities
|
|
ORDER BY created_at DESC
|
|
LIMIT 10;
|
|
|