Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details) - USD ($)
$ / shares in Units, shares in Millions, $ in Millions
3 Months Ended 12 Months Ended
Dec. 31, 2019
Sep. 30, 2019
Jun. 30, 2019
Mar. 31, 2019
Dec. 31, 2018
Sep. 30, 2018
Jun. 30, 2018
Mar. 31, 2018
Dec. 31, 2019
Dec. 31, 2018
Dec. 31, 2017
Earnings Per Share [Abstract]                      
Net income $ 1,099 $ 1,495 $ 1,443 $ 730 $ 1,019 $ 1,322 $ 1,036 $ 557 $ 4,767 $ 3,935 $ 3,205
Basic weighted average shares outstanding (shares)                 651 691 720
Dilutive effect of share-based awards (shares)                 2 3 3
Diluted weighted average shares outstanding (shares)                 653 694 723
Basic earnings per share (usd per share) $ 1.71 $ 2.32 $ 2.22 $ 1.10 $ 1.50 $ 1.93 $ 1.49 $ 0.79 $ 7.32 $ 5.69 $ 4.45
Diluted earnings per share (usd per share) $ 1.71 $ 2.31 $ 2.21 $ 1.09 $ 1.49 $ 1.92 $ 1.49 $ 0.79 $ 7.30 $ 5.67 $ 4.43